2015-12-08 3 views
8

Я хочу удалить значок из панели действий, я использую страницу MasterDetail для создания слайдера, я использую левый значок, чтобы открыть слайдер, но правый значок меньшего размера «APP Vendas» Я хочу удалить, я попытался все на C#, чтобы легко удалить без успеха. Tryiend tranpatent, RGBA, None, и т.д., вот мой код и изображения:Удалить значок из панели действий 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 в проекте Android нечто вроде следующего:

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

В этом состоянии никто не замечает, что изменяя таким образом, они делают значок приложения прозрачным. В результате приложение не будет показывать значок, когда он установлен на устройстве.

Таким образом, лучший способ - отобразить класс NavigationPage, который управляет навигацией и пользовательским интерфейсом стека других страниц.

Создайте класс под названием CustomNavigationRenderer в проекте Android, который будет реализацией на платформе, содержащей код, чтобы скрыть значок из панели действий.

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

Теперь создайте подкласс элемента управления NavigationPage, который должен быть настроен.

public class CustomNavigationRenderer : NavigationPage {} 

Постройте и запустите приложение успешно.

См:

+0

Решил мою проблему двумя возможными способами! Спасибо ! –

+0

превосходно. Спасибо вам столько ... –

7

Вам нужно просто добавить эти строки одного кода в MainActivity.cs файл в вашем Android проекта.

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

Смежные вопросы