我正在尝试设置页面图标。下面是PCL的App
类。
public App()
{
CustomMainPage mainPage = new CustomMainPage();
NavigationPage rootPage = new NavigationPage(mainPage);
this.MainPage = rootPage;
}
我想做什么?
NavigationPage.SetTitleIcon(mainPage, "icon.png");
第二种方法。
NavigationPage.SetTitleIcon(this, "icon.png");
第三种方法。
NavigationPage.SetTitleIcon(rootPage, "icon.png");
文件 icon.png
位于 Resources/drawable
中。
最后我决定在 Xamarin Forms 中为 NavigationPage
实现我的自定义渲染器。 NavigationPage
设置为 MainPage
属性到 PCL 的 App
类中。
我在 Android 项目中创建了 DroidNavigationRenderer
类。
[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。
我做错了什么以及如何解决?
最佳答案
在您的 ContentPage
中,您拥有 Icon
属性。
可以这样设置
Icon = Device.OnPlatform("Menu", "ic_fa_bars.png", "Assets/Icons/reload.png");
关于android - 如何在 Xamarin Forms 中设置页面图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43540540/