我正在使用导航 2 和setUrlStrategy(PathUrlStrategy());
我添加了WillPopScope
但是onWillPop
单击浏览器的后退按钮时不会调用。
Widget build(context) {
return WillPopScope(
onWillPop: () async {
print('here');
if (currentStep == 0) {
return false;
}
return true;
},
child: Scaffold(...
在导航器2.0中,网络浏览器是按时间顺序排列的 https://github.com/flutter/flutter/issues/109011#issuecomment-1212533001基本上将所有导航视为推送。
设想:
- 从屏幕 1 导航到屏幕 2
- 单击浏览器的后退按钮。
在这种情况下,Flutter 将push将之前的路线(屏幕 1)放入堆栈中。
也就是说,浏览器后退按钮不再触发onPopRoute。相反,它会触发 onPushRoute。
我相信它是这样设计的,以便每个导航操作都可以被视为深度链接。考虑到这一点,如果您正在开发一款 Web Flutter 应用程序,您应该尽可能避免将参数从一个路由传递到另一个路由。
https://github.com/flutter/flutter/issues/71122#issuecomment-733864359 https://github.com/flutter/flutter/issues/71122#issuecomment-733864359
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)