gpt4 book ai didi

xamarin - Xamarin Forms 中不同类型的导航

转载 作者:行者123 更新时间:2023-12-04 16:01:47 25 4
gpt4 key购买 nike

Xamarin.Forms 中的这两种导航范例有什么区别?

await Navigation.PushModalAsync(new Dashboard());

await Navigation.PushModalAsync(new NavigationPage(new Dashboard()));

最佳答案

什么是模态页面

Navigation.PushModalAsync 将导致新的 Xamarin.Forms.Page 以模态方式出现,这意味着它的动画将从屏幕底部开始,覆盖之前的当前页面并且它不会包含后退按钮。

在 iOS 上,用户将无法向左滑动以返回上一页。

Android 用户可以使用硬件后退按钮关闭模态页面。

当您希望用户有意识地决定关闭页面时,模态页面很有用。

示例

当 iOS 用户填写表单并向左滑动返回时,是保存表单还是丢弃表单?用户不清楚。为了使用户体验更直观,您应该以模态方式显示表单

界面差异

使用 await Navigation.PushModalAsync(new Dashboard()); 将模态显示 Dashboard 页面,但新页面不会一个导航栏。

enter image description here

使用 await Navigation.PushModalAsync(new NavigationPage(new Dashboard())); 也将模态显示 Dashboard 页面,但新页面 有一个 NavigationBar。

enter image description here

示例应用程序源代码:https://github.com/brminnick/XamList

编辑

@AlessandroCaliaro我在下面对他的回答的评论中进行了很好的讨论:

重要的是要注意 Xamarin.Forms.INavigation使用两个不同的堆栈,ModalStackNavigationStackNavigation.PushModalAsync 添加一个 PageModalStack 并且 Navigation.PushAsync 添加一个 PageNavigationStack

要从 ModalStack 中弹出一个 Page,您需要使用 Navigation.PopModalAsync(),而您将使用 Navigation.PopAsync()NavigationStack 中移除一个 Page

关于xamarin - Xamarin Forms 中不同类型的导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47485426/

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