在Xamarin.Forms中的导航上隐藏BottomNavigationView(仅限Android)

时间:2018-10-16 10:08:22

标签: android xamarin.forms tabbar bottomnavigationview

我正在使用新的Xamarin.Forms功能通过以下属性在Android底部设置Tabbar

xmlns:android =“ clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific; assembly = Xamarin.Forms.Core” android:TabbedPage.ToolbarPlacement =“底部”

导航到其他页面时,我需要隐藏标签栏。我已经编写了一个继承自TabbedPageRenderer的自定义渲染器,但是我无法使用OnElementChanged获取BottomNavigationView的实例。

2 个答案:

答案 0 :(得分:0)

理想情况下,应将TabbedPage保留在NavigationPage内,并将新页面推入TabbedPage顶部。

您无法获得BottomNavigationView参考,因为它是private field。虽然,您可以使用反射来设置其值,但我强烈建议不要这样做。

var info = typeof(TabbedPageRenderer).GetTypeInfo();
var _bottomNavigationView = (BottomNavigationView)info.GetField("_bottomNavigationView", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this);`

答案 1 :(得分:0)

尽管可行,但根据this thread,Apple不建议在导航页面内设置选项卡式页面。

更好的解决方案是在TabbedPage上打开模式页面。我想模式页面可以是NavigationPage,但是我没有尝试过。