flutter - Navigator.popUntil flutter 显示黑屏
问题描述
我的项目中有两个不同的流程。
- 主页 -> 页面A -> 页面B -> 页面C -> 页面A
从页面 C 到页面 A,我使用此代码,它工作正常。
Navigator.popUntil(context, ModalRoute.withName(AssetMenu.ROUTE));
- 当收到推送通知时,用户点击推送通知,我希望它立即像这样导航
主页 -> 页面 B -> 页面 C -> 然后当点击页面 C 中的按钮时返回页面 A。
但是当点击页面C中的按钮时,它显示黑屏。
我该如何处理?
解决方案
在您的第二个用例Page A
中丢失了。当您调用Navigator.popUntil()
navigator 时,会向上堆栈路由并将它们弹出,直到找到指定的路由。如果指定的路由不在栈中,它将移除路由,直到栈为空。这就是你得到黑屏的原因。
如果你想Main Page -> Page B -> Page C
变成Main Page -> Page A
你必须调用Navigator.pushAndRemoveUntil()
新路由在哪里Page A
并且谓词匹配Main Page
. 或者使用Navigator.pushNamedAndRemoveUntil()
.
推荐阅读
- javascript - 为什么在 Fetch 调用中使用 Async/Await
- php - Laravel:搜索条件关系并检索记录
- python - 传递新数据时无法更新图形(“动态图”)
- cplex - OPL CPLEX - 使用具有不同 KPI 的多目标优化
- vb.net - VB.NET 类不更新我的变量
- html - 您可以使用 SCSS 根据嵌套深度设置元素的填充吗?
- python - 合并两个geojson状态邮政编码文件?
- php - 如何用 替换空格
? - java - 有没有办法从默认构造函数中获取数据并在其他方法中使用它?
- python - 回溯错误:ModuleNotFoundError:没有名为“tensorflow.keras”的模块