在Xamarin表单中,我需要编写一个自定义TabbedPageRenderer来隐藏
Android标签栏.但是,我不知道该怎么做.
[assembly: ExportRenderer(typeof(CTabbedPage),typeof(CTabbedPageRenderer))] namespace App15.Droid { public class CTabbedPageRenderer : TabbedPageRenderer { protected override void OnElementChanged(ElementChangedEventArgs<TabbedPage> e) { base.OnElementChanged(e); if (e.NewElement != null) { (this.Context as Activity).ActionBar.NavigationMode = ActionBarNavigationMode.Standard; } } } }
此代码抛出异常,因为ActionBar设置为null.我正在使用AppCompat 23.3.0和XF 2.3.2.118-pre1.
编辑:我认为ActionBar为null的原因是工具栏已经取代了它,但我仍然不知道如何隐藏选项卡.另外,我不想模块地推页面.
我也尝试添加android:visibility =“去”到Tabbar.axml.这成功地隐藏了标签栏,但标签栏仍然占据空间.
解决方法
这是一个
known bug in Xamarin:
android:visibility="gone"
in Tabbar.axml does not reclaim space(状态:CONFIRMED).
一旦固定,使用上述方法似乎是一种方式.