2015-12-08 16 views
8

Chcę usunąć moją ikonę z paska działań, używam strony MasterDetail do utworzenia suwaka, używam lewej ikony, aby otworzyć suwak, ale prawa mniejsza ikona po stronie "APP Vendas" Chcę usunąć, wypróbowałem wszystko na C#, aby łatwo usunąć bez powodzenia. Tryiend tranpatent, RGBA, None, etc, tutaj jest mój kod i zdjęcia:Usuń ikonę z paska czynności 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

Odpowiedz

6

Możemy sprawić, że ikona aplikacji jako przezroczysty zmieniając MainActivity.cs w projekcie Android nieco podobnie do poniższego:

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

w tym stanie nie ma Anonse taki, który zmieniając w ten sposób, sprawiają, że ikona aplikacji jest przezroczysta. W rezultacie aplikacja nie pokaże ikony, gdy jest zainstalowana na urządzeniu.

Najlepszym sposobem jest uczynienie klasy NavigationPage, która zarządza nawigacją i doświadczeniem użytkownika stosu innych stron.

Utwórz klasę o nazwie CustomNavigationRenderer w projekcie Android, która będzie implementacją specyficzną dla platformy, zawierającą kod do ukrycia ikony z paska działań.

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

Teraz utwórz podklasę formantu NavigationPage, który ma zostać dostosowany.

public class CustomNavigationRenderer : NavigationPage {} 

Twórz i uruchamiaj aplikację pomyślnie.

Patrz:

+0

Rozwiązałem mój problem na dwa możliwe sposoby! Dziękuję Ci ! –

+0

superb. Dziękuję bardzo ... –

7

Trzeba tylko dodać te pojedynczego wiersza kodu w MainActivity.cs pliku w projekcie Android.

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

Dla przykładu

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

Jest to bardzo proste i działa jak czar. Przyjęta odpowiedź w porównaniu z tym wydaje się przesadą. – Rob

Powiązane problemy