首页 > 解决方案 > Navigator.popUntil flutter 显示黑屏

问题描述

我的项目中有两个不同的流程。

  1. 主页 -> 页面A -> 页面B -> 页面C -> 页面A

从页面 C 到页面 A,我使用此代码,它工作正常。

   Navigator.popUntil(context, ModalRoute.withName(AssetMenu.ROUTE));
  1. 当收到推送通知时,用户点击推送通知,我希望它立即像这样导航

主页 -> 页面 B -> 页面 C -> 然后当点击页面 C 中的按钮时返回页面 A。

但是当点击页面C中的按钮时,它显示黑屏。

我该如何处理?

标签: flutterdartnavigator

解决方案


在您的第二个用例Page A中丢失了。当您调用Navigator.popUntil()navigator 时,会向上堆栈路由并将它们弹出,直到找到指定的路由。如果指定的路由不在栈中,它将移除路由,直到栈为空。这就是你得到黑屏的原因。

如果你想Main Page -> Page B -> Page C变成Main Page -> Page A你必须调用Navigator.pushAndRemoveUntil()新路由在哪里Page A并且谓词匹配Main Page. 或者使用Navigator.pushNamedAndRemoveUntil().


推荐阅读