如何清除 Flutter 中的导航堆栈

Alu*_*lun 4 flutter

我希望我的应用程序有一个欢迎屏幕,带有注册和登录选项。当我点击“注册”按钮导航到我的注册屏幕时,我使用:

Navigator.push
Run Code Online (Sandbox Code Playgroud)

当我在注册屏幕中按下“返回”按钮时,它必须返回到欢迎页面。

但是在用户完成注册后,我在主页中使用以下代码导航到我的家。

Navigator.pushReplacement
Run Code Online (Sandbox Code Playgroud)

问题是,当我按下“后退”按钮时,我的应用程序返回到欢迎屏幕,而不是留在主页中。

知道发生了什么吗?

Mar*_*pel 13

导航时可以使用以下方法清除导航堆栈:

Navigator.of(ctx).pushAndRemoveUntil(YourRoute, (Route<dynamic> route) => false);
Run Code Online (Sandbox Code Playgroud)

第二个参数是一个 Predicate 来决定是否从堆栈中删除路由。

使用此方法,您将在导航到路线之前清除整个堆栈,这样您将无法返回到欢迎页面。