如何删除 backstack,包括 flutter 中的主页
How to remove backstack including home page in flutter
我看过很多示例,但其中 none 为我提供了一种在导航到下一页时删除整个返回堆栈(包括主页)的方法。
例如:一旦用户成功输入登录凭据用户移动到主屏幕,我有几个登录页面,所以在这里我想删除到目前为止出现的所有以前的屏幕,我该怎么做?
当前使用代码:
Navigator.of(context).pushNamedAndRemoveUntil(
HomeScreen.route_name, ModalRoute.withName('/'));
试试这个方法
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (dialogContex) => HomePageScreen()),
ModalRoute.withName("/HomePageScreen"));
要删除推送路由下方的所有路由,请使用始终 returns false 的 RoutePredicate(例如(路由路由)=> false)。
因此,为了让您的代码按预期工作,请删除 ModalRoute.withName('/') 并提供 returns false 的路由谓词。所以应该是
Navigator.of(context).pushNamedAndRemoveUntil(
HomeScreen.route_name, (Route<dynamic> route)=>false);
试试这个。此代码将给定的路线推送到导航器上,然后删除所有以前的路线,甚至 HomeScreen。
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
builder: (BuildContext context) => HomeScreen(),
),
(route) => false,
);
注意:这是在我的项目上测试的。所以我希望它能 100% 工作
我看过很多示例,但其中 none 为我提供了一种在导航到下一页时删除整个返回堆栈(包括主页)的方法。
例如:一旦用户成功输入登录凭据用户移动到主屏幕,我有几个登录页面,所以在这里我想删除到目前为止出现的所有以前的屏幕,我该怎么做?
当前使用代码:
Navigator.of(context).pushNamedAndRemoveUntil(
HomeScreen.route_name, ModalRoute.withName('/'));
试试这个方法
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (dialogContex) => HomePageScreen()),
ModalRoute.withName("/HomePageScreen"));
要删除推送路由下方的所有路由,请使用始终 returns false 的 RoutePredicate(例如(路由路由)=> false)。
因此,为了让您的代码按预期工作,请删除 ModalRoute.withName('/') 并提供 returns false 的路由谓词。所以应该是
Navigator.of(context).pushNamedAndRemoveUntil(
HomeScreen.route_name, (Route<dynamic> route)=>false);
试试这个。此代码将给定的路线推送到导航器上,然后删除所有以前的路线,甚至 HomeScreen。
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
builder: (BuildContext context) => HomeScreen(),
),
(route) => false,
);
注意:这是在我的项目上测试的。所以我希望它能 100% 工作