如何在flutter中删除包括主页在内的backstack

jit*_*555 2 flutter flutter-navigation

我见过很多例子,但没有一个为我提供一种在导航到下一页时删除整个返回堆栈(包括主页)的方法。

例如:一旦用户成功输入登录凭据,用户就会移动到主屏幕,我有几个登录页面,所以在这里我想删除到目前为止出现的所有先前屏幕,我该怎么做?

目前使用的代码:

   Navigator.of(context).pushNamedAndRemoveUntil(
                            HomeScreen.route_name, ModalRoute.withName('/'));
Run Code Online (Sandbox Code Playgroud)

har*_*era 7

要删除推送的路由下面的所有路由,请使用始终返回 false 的 RoutePredicate(例如 (Route route) => false)。

因此,为了让您的代码按预期工作,请删除 ModalRoute.withName('/') 并提供返回 false 的路由谓词。所以应该是

Navigator.of(context).pushNamedAndRemoveUntil(
                            HomeScreen.route_name, (Route<dynamic> route)=>false);
Run Code Online (Sandbox Code Playgroud)

参考官方文档