我尝试在Xaml中为我的页面设置Icon:
Icon="icon.png
但它没有用,所以我找到了其他解决方案:How to add an icon in navigation bar for navigation page in xamarin forms for android? 它的自定义渲染和工作:
[assembly: ExportRenderer(typeof(NavigationPage), typeof(CustomMapRenderer))]
namespace XamarinFormsMaps.Droid
{
public class CustomMapRenderer : NavigationPageRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<NavigationPage> e)
{
base.OnElementChanged(e);
var bar = (Android.Support.V7.Widget.Toolbar)typeof(NavigationPageRenderer)
.GetField("_toolbar", BindingFlags.NonPublic | BindingFlags.Instance)
.GetValue(this);
bar.SetLogo(Resource.Drawable.icon); //how to load other icon, when Page is changing?
}
}
}
但我想为其他页面设置其他图标...它的代码为所有页面设置相同的图标。如何解决?
答案 0 :(得分:2)
使用以下代码更改导航的当前页面时,您可以收到通知。 它是NavigationPageRenderer中的一种方法。
protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == "CurrentPage")
{
var page = Element.CurrentPage as ContentPage;
if (page != null)
{
//do what you want.
}
}
}