onWillPop、maybePop

来源:5-8 Android物理返回兼容处理跳转回调实现

demonCry

2022-09-15

//fix Android物理返回键,无法返回上一页问题@https://github.com/flutter/flutter/issues/66349
onWillPop: () async => !await navigatorKey.currentState!.maybePop()

虽然知道这是干嘛的了, 但不大清除为什么就能修复这个问题。

  • maybePop做了什么呢?
  • 为什么要用onWillPop呢, 它有什么特殊的地方吗, 为什么不再 onPopPage 里处理呢? 不都是pop前触发吗,按到它们使用的场景是不一样的吗?
  • navigatorKey.currentState.canPop()navigatorKey.currentState.maybePop() 有什么区别呢
写回答

1回答

CrazyCodeBoy

2022-09-16

1、maybePop内部也会调用当前路由的willPop方法,并根据willPop的执行结果,来看是是否可以返回上一页;
2、这里遇到的是Android物理返回键无法返回上一页的问题,而onPopPage是在正常页面返回前的回调,在出现Android物理返回键无法返回上一页时不会回调onPopPag方法,所以无法在onPopPag方法中处理;
0
2
CrazyCodeBoy
按道理会的。
2022-09-20
共2条回复

Flutter高级进阶实战-仿哔哩哔哩-掌握Flutter高阶技能

一次性掌握Flutter高阶技能+商业级复杂项目架构设计与开发方案

1722 学习 · 870 问题

查看课程