我尝试在我的Xamarin.Forms应用的主页上使用图标而不是标题。Xamarin.Forms:如何将一个图标分配给Android上的单个页面导航栏
我已经读了很多相关的话题,但我没有找到任何解决办法:
- navigationpage-settitleicon
- navigationpage-settitleicon-works-on-ios-but-not-android
- toolbar-title-set-center-align
- xamarin-forms-custom-toolbar-android
- navigationpage-settitleicon-works-on-ios-but-not-android
在的iOS这是通过将该我的第一页上,轻松完成:
NavigationPage.SetTitleIcon(this, "navbar_logo.png");
在的Android,我已经添加了这对Toolbar.axml:
<ImageView android:src="@drawable/navbar_adp_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
这可以工作,但现在Android上每一页上都可以看到图标...
我尝试使用渲染器在我导航到另一个页面时隐藏图标。为此,我想使用覆盖OnViewAdded()方法:
public class CustomNavigationPageRenderer : NavigationPageRenderer
{
public override void OnViewAdded(Android.Views.View child)
{ ... }
}
我尝试使用OnViewAdded()因为我已经看到了快速监视,这种方法被称为每次我在Xamarin.Forms应用程序中导航。
我也注意到,该方法在导航过程中所谓的2倍:
- 第一次,孩子参数是V7.Widget.Toolbar:
- 第二次,子参数是Xamarin.Forms.Platform.Android.PageContainer:
所以,我想给孩子扔在Xamarin.Forms.Platform.Android。PageContainer,但我不能这样做,因为这个对象是“内部”:
PageContainer不可访问,因为它保护方法。
为什么我不能在代码中使用QuickWatch? 我不明白是否有另一种方式来实现这一点... 你有什么建议吗?
你能分享你制作的自定义渲染吗? @hankide请尝试创建它,但它并未被解雇。 – acido