Gan*_*gm7 2 xamarin xamarin.forms
Xamarin.Forms中的这两个Navigation范例之间有什么区别?
await Navigation.PushModalAsync(new Dashboard());
await Navigation.PushModalAsync(new NavigationPage(new Dashboard()));
Run Code Online (Sandbox Code Playgroud)
Navigation.PushModalAsync会导致新内容Xamarin.Forms.Page以模态显示,这意味着其动画将从屏幕底部开始,覆盖上一个当前页面,并且不包含后退按钮。
在iOS上,用户将无法向左滑动以返回上一页。
Android用户可以使用硬件后退按钮关闭模式页面。
当您希望用户有意识地决定关闭页面时,模态页面很有用。
例
当iOS用户填写表单并向左滑动以返回时,它是保存表单还是丢弃表单?用户不清楚。为了使UX更加直观,您应该模态显示表单
使用await Navigation.PushModalAsync(new Dashboard());将以Dashboard模态显示页面,但是新页面将没有 NavigationBar。
使用await Navigation.PushModalAsync(new NavigationPage(new Dashboard()));也Dashboard将以模态显示页面,但是新页面将具有NavigationBar。
示例应用程序源代码:https : //github.com/brminnick/XamList
@AlessandroCaliaro和我在下面他的回答的评论中进行了很好的讨论:
重要的是要注意Xamarin.Forms.INavigation使用两个不同的堆栈,ModalStack和NavigationStack。Navigation.PushModalAsync添加Page到ModalStack并Navigation.PushAsync添加Page到NavigationStack。
并弹出一个Page从ModalStack,你需要使用Navigation.PopModalAsync(),而你可以使用Navigation.PopAsync()删除Page从NavigationStack。
| 归档时间: |
|
| 查看次数: |
495 次 |
| 最近记录: |