Flutter#navigator.dart
中的NavigatorState
类有 2 个具有类似行为的方法。在 Flutter 中pushReplacementNamed
和popAndPushNamed
有什么区别?
pushReplacementNamed
通过推送名为 [routeName] 的路由替换导航器的当前路由,然后在新路由完成动画处理后释放以前的路由。
popAndPushNamed
将当前路由从导航器中弹出,并将命名路由推到其位置。
只是一个简短的答案。
区别仅在于动画颤振执行。
- pushReplacement命名-->>"进入动画">
- popAndPush命名-->>"退出动画">
用户A R也在他的回答中发布了这一点。
pushReplacementNamed 将执行进入动画,popAndPushNamed 将执行退出动画。
在 pushReplacementNamed 中,导航器的当前路由推送名为 [routeName] 的路由,然后在新路由完成动画处理后释放以前的路由 而在popAndPushNamed中,当前路由首先弹出,然后新路由被推送,它不会等待其他路由的动画完成
@A R的解释很棒,但这不是一个实际的答案。
除非只有一个堆栈,否则两者的效果是完全相同的。
这是因为当堆栈为 1 时使用 popPushedNamed 时,应用将终止。
正如@encubos所说,动画效果似乎有所不同。