2015-12-08 11 views
8

Ich möchte mein Symbol aus der Aktionsleiste entfernen, ich benutze eine MasterDetail-Seite, um einen Schieberegler zu erstellen, ich verwende das linke Symbol, um den Schieberegler zu öffnen, aber das rechte kleinere Symbol "APP Vendas" Ich möchte entfernen, ich versuchte alles auf C# zu entfernen, ohne Erfolg. Tryiend tranpatent, RGBA, None, etc, hier ist mein Code und Bild:Entfernen Sie das Symbol aus der Aktionsleiste 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

Antwort

6

Wir können das Anwendungssymbol als transparent machen, indem die MainActivity.cs in Android-Projekt zu ändern etwas wie folgt aus:

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

In diesem Zustand keiner merkt, dass Indem sie so verändern, machen sie das Anwendungssymbol transparent. Daher zeigt die Anwendung kein Symbol an, wenn sie auf einem Gerät installiert ist.

So ist der beste Weg, die NavigationPage Klasse zu rendern, die die Navigation und Benutzererfahrung eines Stapels anderer Seiten verwaltet.

Erstellen Sie innerhalb des Android-Projekts eine Klasse namens CustomNavigationRenderer, die eine plattformspezifische Implementierung darstellt, die Code zum Verbergen des Symbols aus der Aktionsleiste enthält.

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())); 
     } 
    } 
} 

Erstellen Sie jetzt eine Unterklasse des NavigationPage-Steuerelements, die angepasst werden soll.

public class CustomNavigationRenderer : NavigationPage {} 

Erstellen und führen Sie Ihre Anwendung erfolgreich aus.

Siehe:

+0

Mein Problem wurde auf zwei Arten gelöst! Vielen Dank ! –

+0

superb.thank dir so viel ... –

7

Sie müssen nur jene einzige Zeile Code in MainActivity.cs Datei in Ihrem Android-Projekt hinzufügen.

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

Für Beispiel

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

Diese Vorwärts sehr gerade und es wirkt wie ein Zauber. Die akzeptierte Antwort im Vergleich dazu scheint wie ein Overkill. – Rob

Verwandte Themen