Flutter:如何在没有后退按钮的情况下推送导航路线?

标签 flutter dart navigation

我知道 Navigator.pushReplacementNamed 允许您替换返回堆栈中的当前屏幕,但是您如何处理当前屏幕已经有自己的返回按钮的情况?

我注意到如果我在这种情况下使用 .pushReplacementNamed 函数,它会保留上一个屏幕的后退按钮,但我希​​望有这样的流程:

屏幕 A .pushNamed -> 屏幕 B(能够导航回 A).pushReplacementNamed -> 屏幕 C(不能导航回 B或 A)

最佳答案

如果您在目标屏幕上使用 AppBar 小部件,请确保将此行添加到您的 AppBar 小部件中,这将防止应用程序自动添加后退AppBar 默认按钮:

    automaticallyImplyLeading: false,

但是,无论您是否使用 AppBar 并且您不想通过单击后退按钮(物理按钮或 Cupertino 滑动手势)转到上一屏幕,您必须使用 WillPopScope 作为目标屏幕上的根小部件。此外,您的 onWillPop 方法应如下所示:

onWillPop: () async => false,

通过返回 false,您将限制您的屏幕离开屏幕并且您现在无法通过单击后退按钮退出该应用程序。因为您要返回 false 作为是否要返回的决定。如果您想关闭应用程序的新屏幕,您可以在 onWillPop 方法内的这一点上使用 exit(0)

关于Flutter:如何在没有后退按钮的情况下推送导航路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64360805/

相关文章:

dart - 我无法运行我的 flutter 应用程序。它说 Flutter 需要 Android SDK 28,而我有 sdk 28

html - W3.CSS 中的第一个菜单项默认为深灰色

datetime - Flutter DateTime,打开关闭如果

flutter - 如何在 Flutter 创建的应用程序中隐藏 AppBar

flutter - 如何在页面转换后显示 SnackBar

flutter - 如何使用相同的按钮导航到Flutter中的不同路线?

scope - Angular dart 子组件范围

css - 制作水平按钮时遇到问题

android - onUpdateNavigationState() 错误

Flutter 错误,Null 检查运算符用于空值