我的应用程序绘制两次二级菜单采用主详细的导航。
我在导航堆栈上推送页面以具有后退按钮功能。
推动与ToolbarItems(二级菜单)页面时,这是在Android上很好,但它双打iOS上的菜单项。
切换到相同的页面(不推),iOS上没有问题(如预期的那样,二级菜单显示一次)。Xamarin窗体MasterDetailPage - 在iOS
我采纳了官方MasterDetail样本(https://github.com/xamarin/xamarin-forms-samples/tree/master/Navigation/MasterDetailPage)来展示我的意思,请参阅solution zip file。
在iOS设备上编译并启动它,按第一页上的按钮打开一个子页面,您应该看到加倍的菜单项(实际上是两次绘制的),所以有两行二级菜单项可见而不是一个。
这两行是相同的,两行(及其菜单项)在点击时发生反应。
如果通过汉堡菜单中选择提醒页面,二级菜单是好的(甚至是iOS上),在页面不推导航堆栈上,但切换。
一些有趣的部分:
ContactsPage.xaml.cs:
SwitchToDetailPageAndPushOnNavStack()
ReminderPage.xaml:
<ContentPage.ToolbarItems> <ToolbarItem Text="Do something" Clicked="OnDoSomethingClicked" Order="Secondary" /> </ContentPage.ToolbarItems>
有什么事摆脱iOS上的这种怪异的效果呢?
谢谢你,那是有效的。 NavigationPage。SetHasNavigationBar(newPage,false)在我的代码中调用了以下评论: '// iOS:隐藏导航栏,以避免同时有多行回溯和汉堡包导航 所以我想,在过去的某个时候,是必要的,但现在它似乎是有害的。好的,还有一个教训... – HeliG