2015-12-08 11 views
8

मैं अपने आइकन को एक्शन बार से हटाना चाहता हूं, मैं एक स्लाइडर बनाने के लिए मास्टर डेंटल पेज का उपयोग कर रहा हूं, मैं स्लाइडर खोलने के लिए बाएं आइकन का उपयोग कर रहा हूं, लेकिन सही छोटा आइकन "एपीपी वेंडास" मैं हटाना चाहता हूं, मैंने सफलता के बिना आसानी से हटाने के लिए सी # पर सब कुछ करने की कोशिश की।एक्शन बार से आइकन निकालें xamarin

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Xamarin.Forms; 
using App5.Menu; 
using App5.Categorias; 
using App5; 
namespace App5 
{ 
    public class MainPage : MasterDetailPage 
    { 
     public MainPage() 
     { 
      var menuPage = new MenuPage(); 
      menuPage.OnMenuTap = (page) => 
      { 
       IsPresented = false; 
       Detail = new NavigationPage(page); 
      }; 
      Master = menuPage; 
      Detail = new NavigationPage(new Resumo()) 
      { 
       BarBackgroundColor = Color.Black, 
       Icon = None 
      }; 




     } 

    } 
} 

The right Icon is what I want to remove

उत्तर

6

हम कुछ हद तक इस तरह का एंड्रॉयड परियोजना में MainActivity.cs बदलकर आवेदन आइकन के रूप में पारदर्शी बना सकते हैं:

[Activity (Label = "Sample Application", Icon = "@android:color/transparent", MainLauncher = true] 

इस हालत में कोई भी गौर करती है कि इस तरह बदलकर वे एप्लिकेशन आइकन पारदर्शी होने जा रहे हैं। नतीजतन जब डिवाइस किसी डिवाइस पर स्थापित होता है तो एप्लिकेशन आइकन नहीं दिखाएगा।

तो सबसे अच्छा तरीका NavigationPage वर्ग प्रस्तुत करना है जो अन्य पृष्ठों के ढेर के नेविगेशन और उपयोगकर्ता अनुभव को प्रबंधित करता है।

एंड्रॉइड प्रोजेक्ट के अंदर CustomNavigationRenderer नाम की एक कक्षा बनाएं जो एक प्लेटफ़ॉर्म-विशिष्ट कार्यान्वयन होगा जिसमें एक्शन बार से आइकन छुपाने के लिए कोड शामिल होगा।

using Android.App; 
using Android.Graphics.Drawables; 
using Xamarin.Forms; 
using Xamarin.Forms.Platform.Android; 
using SampleApp; 
using SampleApp.Droid; 

[assembly: ExportRenderer(typeof(NavigationPage), typeof(CustomNavigationRenderer))] 
namespace SampleApp.Droid { 
    public class CustomNavigationRenderer: NavigationRenderer { 
     protected override void OnElementChanged(ElementChangedEventArgs <NavigationPage> e) { 
      base.OnElementChanged(e); 

      RemoveAppIconFromActionBar(); 
     } 
     void RemoveAppIconFromActionBar() { 
      var actionBar = ((Activity) Context).ActionBar; 
      actionBar.SetIcon(new ColorDrawable(Color.Transparent.ToAndroid())); 
     } 
    } 
} 

अब नेविगेशन पेज नियंत्रण का उप-वर्ग बनाएं जिसे अनुकूलित किया जाना है।

public class CustomNavigationRenderer : NavigationPage {} 

अपना एप्लिकेशन सफलतापूर्वक बनाएं और चलाएं।

देखें:

+0

मेरी समस्या को दो संभावित तरीकों से हल किया! धन्यवाद ! –

+0

शानदार। आपको बहुत धन्यवाद ... –

7

तुम बस अपने Android परियोजना में MainActivity.cs फ़ाइल में उन लोगों के एकल लाइन कोड जोड़ने की जरूरत: Tryiend tranpatent, RGBA, कोई नहीं, आदि, यहाँ मेरी कोड और छवि है।

ActionBar.SetIcon(Android.Resource.Color.Transparent); 

उदाहरण

लिए
using Android.OS; 
using Android.Content.PM; 

namespace Test.Droid 
{ 

    [Activity(Label = "test", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] 
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity 
    { 
     protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 
      global::Xamarin.Forms.Forms.Init(this, bundle); 
      ActionBar.SetIcon(Android.Resource.Color.Transparent); 
      LoadApplication(new App()); 

     } 
    } 
+0

यह बहुत सीधे आगे है और यह एक आकर्षण की तरह काम करता है। इसकी तुलना में स्वीकृत उत्तर एक ओवरकिल की तरह लगता है। – Rob

संबंधित मुद्दे