如何模拟设备返回btn按/ AppBar返回按?Navigator.pop()不会调用WillPopScope



我能够使用WillPopScope覆盖后退按钮的onPressed行为。现在,每当我按下device back buttondefault AppBar back button时,onWillPop中的代码就会按预期运行。

现在的问题是,我想有我自己的自定义按钮向后导航,但Navigator.of(context).pop()不检查WillPopScope,好像它不存在。

  • 是否有办法模拟系统的反向行为或以某种方式调用它?
  • 我知道我可以调用相同的函数被调用onWillPop()手动按下我的自定义后退按钮,但我渴望找到一个更干净的方法,因为在未来我很容易忘记这样做,并导致bug。

在简单的情况下,当您需要拦截Android返回按钮时,您通常将WillPopScope添加到您的小部件树中。但是,在开发与后退按钮交互的有状态小部件时,使用BackButtonInterceptor更方便。

更多详细信息请查看此链接:https://pub.dev/packages/back_button_interceptor

在使用StateFullWidget时,使用BackButtonInterceptor更方便。希望这对你有帮助。欲了解更多详情,请查看以下内容:[1]: https://pub.dev/packages/back_button_interceptor

关键是使用Navigator.of(context).maybePop()。或者更具体地说,在我的情况下,是使用Navigator.of(context, rootNavigator:true).maybePop(),因为我使用嵌套导航。

最新更新