gpt4 book ai didi

flutter - flutter 中 Navigator.pushReplacement 和 Navigator.pushAndRemoveUntil 有什么区别?

转载 作者:行者123 更新时间:2023-12-05 09:28:14 43 4
gpt4 key购买 nike

在flutter中,我们有两种方式可以在销毁当前页面的同时退出页面。第一个是pushReplacement-

Navigator.pushReplacement(context, MaterialPageRoute(builder: (context){
return LocationScreen();
}));

第二个是pushAndRemoveUntil-

Navigator.pushAndRemoveUntil(
context, MaterialPageRoute(builder: (context) => LocationScreen()), (
route) => false);
}

这两个看起来完全一样。我通过谷歌搜索,但找不到满意的答案。谁能给我解释一下这两者的区别?

最佳答案

想象一下您当前的导航堆栈是这样的:

/A
/B
/C

现在,您想要到达路线 /D。调用 pushReplacement 后,导航堆栈将如下所示:

/A
/B
/D

就是这样,您无法使用此方法执行更多操作。但是,在使用 pushAndRemoveUntil 时,您还可以指定路由谓词,它会告诉您何时需要在推送下一条路由之前停止弹出堆栈。例如,您的路由谓词是路由 /A,结果将如下所示:

/A
/D

注意,路由 /B/C 已从堆栈中删除。

总结一下:pushReplacement 只替换最上面的路由,而 pushAndRemoveUntil 可以替换多条路由,直到你定义的谓词。

关于flutter - flutter 中 Navigator.pushReplacement 和 Navigator.pushAndRemoveUntil 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71609393/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com