2
ページアイコンを設定しようとしています。以下のPCLのクラスがApp
です。Xamarinフォームでページアイコンを設定する方法は?
public App()
{
CustomMainPage mainPage = new CustomMainPage();
NavigationPage rootPage = new NavigationPage(mainPage);
this.MainPage = rootPage;
}
私は何をしようとしましたか?
NavigationPage.SetTitleIcon(mainPage, "icon.png");
第2のアプローチです。
NavigationPage.SetTitleIcon(this, "icon.png");
第3のアプローチ。
NavigationPage.SetTitleIcon(rootPage, "icon.png");
ファイルicon.png
はResources/drawable
に位置しています。
最後に、NavigationPage
のカスタムレンダラーをXamarinフォームに実装することにしました。 NavigationPage
は、MainPage
プロパティのPCLのApp
に設定されています。
私はDroidNavigationRenderer
クラスをAndroidプロジェクトに作成しました。
[assembly: ExportRenderer(typeof(NavigationPage), typeof(DroidNavigationPageRenderer))]
namespace App1.Droid.DroidRenderers
{
public class DroidNavigationPageRenderer : NavigationPageRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<NavigationPage> e)
{
base.OnElementChanged(e);
var actionBar = ((Activity)Context).ActionBar;
actionBar.SetIcon(Resource.Drawable.icon);
}
}
}
ただし、actionBar
は常にnullとして返されます。 私は間違っていて、それを修正する方法は?
それを設定することができます。私は 'App'クラスを' this.MainPage = new ContentPage {Icon = Device.OnPlatform( "Menu"、 "icon.png"、 "Assets/Icons/reload.png")に単純化し、BackgroundImage = "lightWood.png" }; 'また動作しません。私は何が問題なのか分からない。多分私のカスタムアイコンがそれに影響するかもしれない。 'png'画像(52x72px)です。これは 'MyProject/Resources/drawable/icon.png'にありますが、背景画像が表示されます。 –
アイコンを表示するにはNavigationPageが必要だと思います。 – hamalaiv
こんにちは@JosephKatzman:あなたはこれを行うことができますか? SetTitleIcon()でロゴを表示する方法を1ページだけで検索します。 これはiOSではうまく動作しますが、Androidではロゴが各ページに表示されます... –