1。pushReplacementNamed:当用户成功登录并且现在在 HomeScreen 上时,您不希望用户还能够返回到 LoginScreen。因此,登录应完全由首页替换。
替换本界面
2。popAndPushNamed:假设您正在有一个 Shopping 应用程序,该应用程序在 ProductsListScreen 中显示产品列表,用户可以在 FiltersScreen 中应用过滤商品。 当用户单击“应用筛选”按钮时,应弹出 FiltersScreen 并使用新的过滤器值推回到 ProductsListScreen。 这里 popAndPushNamed 显然更为合适
替换本界面
pushReplacementNamed 与 popAndPushNamed 的区别在于: popAndPushNamed 能够执行 Screen2 弹出的动画与 Screen3 推进的动画而 pushReplacementNamed 仅显示 Screen3 推进的动画
用户已经登陆进入 HomeScreen ,然后经过一系列操作回到配合只界面想要退出登录,你不能够直接 Push 进入 LoginScreen 吧?你需要将之前路由中的实例全部删除是的用户不会在回到先前的路由中
Navigator.of(context).pushNamedAndRemoveUntil('/screen4', (Route route) => false);
4.Navigator.of(context).pushNamedAndRemoveUntil('/screen4', ModalRoute.withName('/screen1'));
我们不希望删除先前所有实例,我们只要求删除指定个数的实例。
5.想象一下,我们在应用程序中要填写一系列信息,表单分布在多个页面中。假设需要填写三个页面的表单一步接着一步。 然而,在表单的第 3 部分,用户取消了填写表单。 用户单击取消并且应弹出所有之前与表单相关的页面,并且应该将用户带回 HomeScreen 或者 DashboardScreen,这种情况下数据属于数据无效! 我们不会在这里推新任何新东西,只是回到以前的路由栈中。
Navigator.popUntil(context, ModalRoute.withName('/screen2'));
借鉴于他人的文章,如有异议请联系我,谢谢!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有