Flutter Navigator 移除直到
Posted
技术标签:
【中文标题】Flutter Navigator 移除直到【英文标题】:Flutter Navigator remove until 【发布时间】:2020-10-22 14:38:53 【问题描述】:我有一个类似pageA -> pageB -> pageC -> pageD
的路由器堆栈,我想从pageD
弹出到pageA
。
如果使用Navigator.of(context).popUntil
,所有页面的pop过渡都会运行,但我只想运行pageD
过渡,因为每个页面的导航器过渡都是不同的。
我找到了Navigator.removeRouteBelow
和Navigator.removeRoute
,但我找不到PageB
或PageC
的Route
实例。
有没有像removeUntil
这样的方法,或者有什么方法可以解决我的问题?谢谢。
【问题讨论】:
【参考方案1】:试试这个
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => pageA()),
ModalRoute.withName("/Home"),
);
【讨论】:
很遗憾,如果使用这种方法,pageA
将成为一个新的 Widget,旧的pageA
的状态将丢失,路由堆栈将变为pageA -> pageA
。以上是关于Flutter Navigator 移除直到的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 navigator.pop 刷新或重新加载页面...比如第 1(nav.push=>2)页面到第 2 页,然后从第 2(nav.pop,值)返回到第 1 页?
flutter系列之:在flutter中使用导航Navigator