gpt4 book ai didi

android - Xamarin Forms 中的 Prism 导航 - MasterDetailPage

转载 作者:行者123 更新时间:2023-11-29 00:03:44 24 4
gpt4 key购买 nike

我有一个使用 Prism 6.3 pre-2 的主细节页面设置,我终于让它按照我预期的方式工作,用于导航到“细节”页面;所以汉堡包按钮显示幻灯片抽屉,我有一个简单的 ListView 绑定(bind)到 ViewModel,我列出了一些项目,我使用 NavigateCommand 正确导航。

现在,预期的行为(在 Android 中)是当您导航到滑出菜单中的其他项目时,您应该能够使用硬件后退按钮导航回到第一个“详细信息”页面显示。

例如,假设您的应用具有此设置,并且列出的项目是收件箱、草稿和已发送。默认 View 将是您决定的默认详细 View ,在此示例中,它很可能是收件箱。因此,如果我导航到“已发送”,然后按返回,它应该返回到收件箱,同样,如果我转到“已发送”->“草稿”,然后按返回,它应该返回到收件箱,因为这是默认起点,如果您然后再次按下,应用程序应该退出。目前,使用 Prism 导航,无论您使用此设置导航到哪个页面,它都会立即退出。

请注意,我已经正确设置了它,我基本上有这样的东西(作为一个例子):

await NavigationService.NavigateAsync("RootPage/BaseNavigationPage/InboxPage");

当我导航到另一个页面时,比如 Sent,相对 URI 是这样的:

"BaseNavigationPage/SentPage"

现在,当按下后退键时,它应该返回到 InboxPage,我不确定如何解决这个问题...大脑...???

除此之外,还缺少另一种意外行为。如果我想在使用主详细信息页面时显示模态页面,它不会像谷歌编写的任何应用程序那样工作......如果你打开任何具有这种布局的谷歌应用程序,这很容易看到。如果您显示一个用于设置的模态窗口,它会弹出,设置了导航标题和一个后退箭头,基本上看起来与您向下导航了一步完全相同,如下所示:

"RootPage/BaseNavigationPage/InboxPage/EmailPage"

但是,如果我执行以下操作,我希望可以使用此功能:

"BaseNavigationPage/SettingsPage", useModalNavigation:true

如果您简单地试用任何 Google 开发的应用程序,您就会看到这些功能,这些是我所期望的,而且感觉很自然。

有任何帮助可以实现这一点......?又是……布赖恩……?

所有这些都应该很简单,但事实证明并非如此......

最佳答案

要在 MasterDetailPage 场景中使用 NavigationPage 获得您想要的行为,您必须创建一个实现 INavigationPageOptions 的自定义 NavigationPage 并将 ClearNavigationStackOnNavigation 属性设置为 false。这将使 NavigationPage 的导航堆栈在每个导航操作中保持在原位。

至于您关于模态导航的其他“预期行为”,您对模态导航的理解是错误的。模态导航不提供软件后退按钮。任何时候你想要一个软件后退按钮,你必须将页面包装在 NavigationPage 中,

关于android - Xamarin Forms 中的 Prism 导航 - MasterDetailPage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42579874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com