我有一个使用Prism 6.3 pre-2的主详细页面设置,我终于让它像我预期的那样导航到“细节”页面;所以汉堡按钮显示了幻灯片抽屉,我有一个简单的ListView绑定到ViewModel,我列出了一些项目,我使用NavigateCommand来正确导航。
现在,预期的行为(在Android中)是,当你导航到滑出菜单中的其他项目时,你应该能够使用硬件后退按钮导航回显示的第一个“详细”页面。
例如,假设您的应用程序具有此设置,并且列出的项目是收件箱、草稿和发送。默认视图将是您确定的默认详细信息视图,在本例中,它很可能是收件箱。因此,如果我导航到Sent,然后按back,它应该会返回到收件箱,同样,如果我转到Sent -> Draft,然后按back,它应该会回到收件箱,因为这是默认的起点,如果你再次按back,应用程序应该会退出。目前,使用棱镜导航,无论您使用此设置导航到哪个页面,它都会立即退出。
请注意,我已经正确地设置了它,我基本上有这样的东西(作为示例):
await NavigationService.NavigateAsync("RootPage/BaseNavigationPage/InboxPage");
当我导航到像Sent这样的页面时,相对URI是这样的:
"BaseNavigationPage/SentPage"
现在,当back被按下时,它应该返回到InboxPage,我不确定如何解决这个问题……大脑...?
除此之外,还缺少另一个意想不到的行为。如果我想要显示一个模式页面,同时使用一个主详细页,它不会像谷歌编写的任何应用程序那样工作…如果您打开任何具有此布局的google应用程序,就很容易看到这一点。如果你为say Settings显示一个模式窗口,它会弹出,设置了导航标题和一个向后箭头,基本上看起来就像你再往下导航一步,如下所示:
"RootPage/BaseNavigationPage/InboxPage/EmailPage"但是,如果我执行以下操作,我预计此功能将可用:
"BaseNavigationPage/SettingsPage", useModalNavigation:true如果你只是简单地使用任何Google制作的应用程序,你就会看到这些功能,这些都是我所期望的,它们感觉很自然。
有什么可以帮助实现这一点的吗?again...Brian...?
所有这些都应该很简单,但事实证明并非如此...
发布于 2017-03-06 08:54:05
要在MasterDetailPage方案中使用NavigationPage获得您想要的行为,必须创建一个实现INavigationPageOptions的自定义NavigationPage,并将ClearNavigationStackOnNavigation属性设置为false。这将使NavigationPage的导航堆栈与每个导航操作保持一致。
至于你关于模式导航的其他“预期行为”,你对模式导航的理解是错误的。模式导航不提供软件后退按钮。任何时候你想要一个软件后退按钮,你必须有一个NavigationPage包装的页面,
https://stackoverflow.com/questions/42579874
复制相似问题