在 Flutter 中,我們有兩種方法可以在銷毀當前頁面的同時退出頁面。第一個是 pushReplacement-
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context){
return LocationScreen();
}));
第二個是 pushAndRemoveUntil-
Navigator.pushAndRemoveUntil(
context, MaterialPageRoute(builder: (context) => LocationScreen()), (
route) => false);
}
這兩者似乎完全相同。我通過谷歌搜索,但找不到滿意的答案。有人可以解釋一下這兩者之間的區別嗎?
uj5u.com熱心網友回復:
想象一下您當前的導航堆疊是這樣的:
/A
/B
/C
現在,你想去 route /D。呼叫后pushReplacement,導航堆疊將如下所示:
/A
/B
/D
就是這樣,你不能用這種方法做更多的事情。但是,在使用 時pushAndRemoveUntil,您還可以指定路由謂詞,它會告訴您何時需要在推送下一條路由之前停止彈出堆疊。例如,您的路由謂詞是 route /A,結果將如下所示:
/A
/D
請注意,這些路由/B和/C已從堆疊中洗掉。
總結一下:pushReplacement只替換頂級路由,而pushAndRemoveUntil可以替換多個路由,直到您定義的謂詞。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/449682.html
上一篇:在performResize()期間引發了以下斷言:水平視口被賦予了無限的高度
下一篇:Flutter推送新路由時使用`pushReplacementNamed`和`pushReplacement`有什么區別?
