我试图设置页面图标。下面有App
类PCL。
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
属性设置为App
类PCL。
我在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。
我做错了什么以及如何解决它?
答案 0 :(得分:0)
在ContentPage
中,您拥有Icon
属性。
您可以这样设置
Icon = Device.OnPlatform("Menu", "ic_fa_bars.png", "Assets/Icons/reload.png");
答案 1 :(得分:0)
您的CustomMainPage类是什么?如果我拥有TabbedPage并设置其子级之一,则可以这样操作:
var navigationPage = new NavigationPage(mainPage);
if (Device.RuntimePlatform == Device.iOS)
{
navigationPage.Icon = "services.png";
}
希望有帮助