flutter - 为什么 pushAndRemoveUntil 不删除相同的路由?
问题描述
例如,当前应用的路线是AllMessagesView()
(并让它成为应用中的第一条路线)。我想要的是当我去下一条路线时,所有以前的路线都应该被删除。但如果我走同样的路线,就像这样
Navigator.of(context).pop(); // closes a drawer
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => AllMessagesView()),
ModalRoute.withName('/'),
);
然后按android的back
按钮,它会显示相同的路线。如果我再按一次back
按钮,它就会关闭应用程序。
那么为什么pushAndRemoveUntil
在这种情况下不删除相同的路线呢?
解决方案
不确定,但您可以通过在代码下方进行以下修改来关闭或退出应用程序:
Navigator.of(context).pop(); // closes a drawer
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => AllMessagesView()),
ModalRoute.withName('/'),
);
// Now try to close the app with this:
if (Platform.isAndroid) {
SystemNavigator.pop();
} else if (Platform.isIOS) {
exit(0);
}
推荐阅读
- c - strcat 仅对 for 循环中的第二项不起作用
- angular - 如何确保用户可以通过接口的@Input 将初始值传递给表单
- python - Python while循环内while循环不会中断
- git - 当其他人之前推送时,如何防止在 git 上推送分支?
- javascript - 为什么我们不能在 console.log() 中使用“+”或“-”
- css - 什么可能导致中文字体不在 safari 和 Mozilla 中显示,而是在 chrome 中显示?
- networking - 不使用 tcp/udp 端口的 ping 如何在 pat(nat 过载)网络中工作?
- c++ - 包括用于对象检测的暗网 Yolov3
- javascript - 如何在这个 jQuery 中隐藏 VAR 值?
- javascript - 将 TypeScript 变量暴露给 JS 全局范围(使用 webpack)