如何模拟设备后退按钮按下/ AppBar 后退按下?未调用 WillPopScope Navigator.pop()
How to simulate device back btn press/ AppBar back press? WillPopScope is not called upon Navigator.pop()
我能够使用 WillPopScope
覆盖后退按钮 onPressed 行为。现在,每当我按下 device back button
或 default AppBar back button
时,onWillPop
中的代码都会按预期运行。
现在的问题是我想要有自己的自定义按钮来向后导航,但是 Navigator.of(context).pop()
没有检查 WillPopScope,就好像它不存在一样。
- 有没有办法模拟系统的返回行为或以某种方式调用它?
- 我知道我可以调用
onWillPop() 在按下我的自定义后退按钮时手动执行,但我急于找到一种更简洁的方法,因为将来我很容易忘记这样做并导致错误。
在简单的情况下,当您需要拦截 Android 后退按钮时,通常会将 WillPopScope
添加到您的小部件树中。但是,在开发与后退按钮交互的有状态小部件时,使用 BackButtonInterceptor
.
更方便
有关详细信息,请查看此 link: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()
,因为我使用的是嵌套导航。
我能够使用 WillPopScope
覆盖后退按钮 onPressed 行为。现在,每当我按下 device back button
或 default AppBar back button
时,onWillPop
中的代码都会按预期运行。
现在的问题是我想要有自己的自定义按钮来向后导航,但是 Navigator.of(context).pop()
没有检查 WillPopScope,就好像它不存在一样。
- 有没有办法模拟系统的返回行为或以某种方式调用它?
- 我知道我可以调用 onWillPop() 在按下我的自定义后退按钮时手动执行,但我急于找到一种更简洁的方法,因为将来我很容易忘记这样做并导致错误。
在简单的情况下,当您需要拦截 Android 后退按钮时,通常会将 WillPopScope
添加到您的小部件树中。但是,在开发与后退按钮交互的有状态小部件时,使用 BackButtonInterceptor
.
有关详细信息,请查看此 link: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()
,因为我使用的是嵌套导航。