2015-12-08 92 views
8

我想從操作欄中刪除我的圖標,我使用MasterDetail頁面創建滑塊,我使用左側圖標打開滑塊,但右側較小的圖標位於側面「APP Vendas」我想刪除,我嘗試了C#上的所有內容,以便輕鬆刪除,但沒有成功。 Tryiend tranpatent,RGBA,無等,這裏是我的代碼和圖片:刪除操作欄中的圖標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

我們可以使應用程序圖標,透明,通過改變在Android項目的MainActivity.cs有點像下面這樣:

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

在這種情況下沒人注意到這通過像這樣改變他們使應用程序圖標變得透明。因此,應用程序安裝在設備上時不會顯示圖標。

所以最好的方法是渲染管理其他頁面的導航和用戶體驗的NavigationPage類。

在Android項目內部創建一個名爲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())); 
     } 
    } 
} 

現在創建一個要自定義的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