Jer*_* Ng 3 navigation dart flutter
我知道这Navigator.pushReplacementNamed允许您替换后退堆栈上的当前屏幕,但是如何处理当前屏幕已经有自己的后退按钮的情况?
我注意到,如果我.pushReplacementNamed在这种情况下使用该功能,它会保留上一个屏幕的后退按钮,但我希望有这样的流程:
屏幕 A .pushNamed-> 屏幕 B(能够导航回 A).pushReplacementNamed-> 屏幕 C(不应导航回 B 或 A)
如果您在目标屏幕上使用AppBar小部件,请确保在AppBar小部件内添加此行,这将阻止应用程序默认在以下位置自动添加后退按钮AppBar:
automaticallyImplyLeading: false,
Run Code Online (Sandbox Code Playgroud)
但是,无论您AppBar是否使用,并且您不想通过单击后退按钮(物理按钮或库比蒂诺滑动手势)转到上一个屏幕,您都必须将其用作WillPopScope目标屏幕上的根小部件。另外,你的onWillPop方法应该如下所示:
onWillPop: () async => false,
Run Code Online (Sandbox Code Playgroud)
通过返回 false,您将限制屏幕离开屏幕,并且您现在无法通过单击后退按钮退出应用程序。因为false回不回都是你自己决定的。如果您想关闭应用程序的新屏幕,可以exit(0)在方法中使用这一点。onWillPop
| 归档时间: |
|
| 查看次数: |
5872 次 |
| 最近记录: |