Flutter 中的 pushReplacementNamed 和 popAndPushNamed 有啥区别?
Posted
技术标签:
【中文标题】Flutter 中的 pushReplacementNamed 和 popAndPushNamed 有啥区别?【英文标题】:What is the difference between pushReplacementNamed and popAndPushNamed in Flutter?Flutter 中的 pushReplacementNamed 和 popAndPushNamed 有什么区别? 【发布时间】:2020-05-06 01:52:15 【问题描述】:Flutter#navigator.dart
中的 NavigatorState
类有 2 个具有类似行为的方法。 Flutter中pushReplacementNamed
和popAndPushNamed
有什么区别?
pushReplacementNamed
通过推送名为 [routeName] 的路线替换导航器的当前路线,然后在新路线完成动画处理后处理先前的路线。
popAndPushNamed
从导航器中弹出当前路线并在其位置推送命名路线。
【问题讨论】:
【参考方案1】:只是一个简短的答案。
区别仅在于颤动执行的动画。
pushReplacementNamed -->> "进入动画" popAndPushNamed -->> "退出动画"用户 A R 也在他的回答中发布了这个。
pushReplacementNamed 将执行进入动画,popAndPushNamed 将执行退出动画。
【讨论】:
【参考方案2】:在 pushReplacementNamed 中,导航器的当前路线推送名为 [routeName] 的路线,然后在新路线完成动画后处理之前的路线 而在 popAndPushNamed 中,当前路由首先弹出,然后新路由被推入,它不会等待其他路由的动画完成
【讨论】:
可能会帮助添加一些示例以进一步强调差异?【参考方案3】:@A R 的解释很好,但这不是一个实用的答案。
除非只有一层,否则两者的效果完全一样。
这是因为栈为 1 时使用 popPushedNamed 时应用程序被终止。
而且正如@encubos 所说,动画效果似乎有所不同。
【讨论】:
以上是关于Flutter 中的 pushReplacementNamed 和 popAndPushNamed 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
如何去除 Flutter 中的“XMLHttpRequest 错误”? (Django 后端,Flutter 前端)
Flutter 中的 pushReplacementNamed 和 popAndPushNamed 有啥区别?
“flutter doctor”命令找不到安装在 Android Studio 中的 Flutter 和 Dart 插件