Navigator.popUntil flutter 显示黑屏

Joh*_*Joe 5 navigator dart flutter

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

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

从C页到A页,我使用了这段代码,效果很好。

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

主页 -> 页面 B -> 页面 C -> 单击页面 C 中的按钮后返回页面 A。

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

我应该如何处理这个问题?

0x4*_*b50 7

在你的第二个用例中Page A缺少。当您调用Navigator.popUntil()导航器时,会向上查找路由堆栈并弹出它们,直到找到指定的路由。如果指定的路由不在堆栈中,则会删除路由,直到堆栈为空。这就是为什么你会看到黑屏。

如果你想变成,Main Page -> Page B -> Page CMain Page -> Page A必须调用Navigator.pushAndRemoveUntil()新路由所在的位置Page A并且谓词与Main Page. 或者使用Navigator.pushNamedAndRemoveUntil().