flutter - 如何删除 backstack,包括 flutter 中的主页

标签 flutter flutter-navigation

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

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

目前使用代码:

   Navigator.of(context).pushNamedAndRemoveUntil(
                            HomeScreen.route_name, ModalRoute.withName('/'));

最佳答案

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

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

Navigator.of(context).pushNamedAndRemoveUntil(
                            HomeScreen.route_name, (Route<dynamic> route)=>false);

有关引用,请参阅 official documentation

关于flutter - 如何删除 backstack,包括 flutter 中的主页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61435912/

相关文章:

Flutter - 制作一个看起来像抽屉的幻灯片面板

flutter - 如何将Future <int>传递给父类(super class)

flutter - 如何在flutter中从Parent Widget访问 child 的所有状态?

exception - 如何在 flutter 中捕获异步函数的异常?

flutter 如何更改容器上的一个边框并保持 borderRadius?

dart - StreamBuilder 限制

flutter - 如何删除默认导航路线动画

Fluro包中Flutter Navigator默认路由路由

flutter - 当我通过单击脚手架内的平面按钮导航到其他页面时,底部导航栏消失

firebase - 如何基于uid创建用户个人资料并导航到个人资料页面?