2015-12-08 15 views
8

アクションバーからアイコンを削除したい、スライダを作成するためにMasterDetailページを使用しています。左側のアイコンを使用してスライダを開きますが、右側の小さなアイコンは"APP Vendas"私は削除したい、私はeasly除去せずにすべてのC#をtryied成功なし。あなたはちょうどあなたのAndroidプロジェクトにMainActivity.csファイルでこれらの単一行のコードを追加する必要がアクションバーからアイコンを削除する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

2つの可能な方法で私の問題を解決しました!ありがとうございました ! –

+0

素晴らしい。ありがとうございました... –

7

: 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

関連する問題