getx
getx copied to clipboard
你们的PopScope正常嘛,我这边canPop=false时在iOS上依然能够侧滑返回,android上倒是正常
rt,难道只有我一个人遇到这个情况?以前用WillPopScope已经弄好的逻辑和功能,最近在更新flutter版本之后,顺便把WillPopScope换到PopScope,然后就gg了,iOS上canPop=false时也能侧滑返回。
然后,新建了个demo工程,没有使用getx却是正常的,canPop=false时不能侧滑返回,惊不惊喜。
本来还以为惹不起,躲得起,想用回WillPopScope,居然无论onWillPop设置true还是false,ios都不能侧滑返回,666...
get版本4.6.6,flutter版本3.16.3 flutter doctor: [✓] Flutter (Channel stable, 3.16.3, on macOS 14.2.1 23C71 darwin-arm64 (Rosetta), locale zh-Hans-CN) [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2) [✓] Xcode - develop for iOS and macOS (Xcode 15.1) [✓] Chrome - develop for the web [✓] Android Studio (version 2020.3) [✓] VS Code (version 1.87.2)
GetPage里面设置popGesture: false可以解决
GetPage里面设置popGesture: false可以解决
这个一刀切有点不符合我这边的逻辑,我这边的场景就类似打开一个只有一个webview的页面,webview加载了很多层的url,侧滑返回时要让webview.goback(),webview不能回退时再侧滑就退出当前页面。 就差不多是这样的,根据不同情况来判断处理侧滑事件
same same
试试这两: adaptive_will_pop_scope adaptive_pop_scope
我感觉在iOS上拦截侧滑是个很奇怪的事情,侧滑本身已经触发了动画,这时候拦截掉,体验不是很友好
不好意思,这几天太忙没看,这个拦截侧滑就是要在侧滑开始之前拦截啊,不是已经发生侧滑了才拦截。WillPopScope就是处理这种的,监听到这个动作的时候可以让你决定在onWillPop返回是否可以侧滑
Same to me
return PopScope(
canPop: false,
child: Scaffold(
appBar: AppBar(
leading: BackButton(onPressed:() => Get.back(),), 问题解决了 canPop: false,然后自定义BackButton事件;
我这边也是一样的情况,我想根据一个变量去判断是否可以侧滑退出
WillPopScope(
onWillPop: widget.logic.state.isSelect ? () async => false : null,
child: Container()
);
之前在WillPopScope上可以正常运作的。但是升级到PopScope就无法实现我这边想要的功能
修改后如下
PopScope(
canPop: widget.logic.state.isSelect, // 这里测试无论是true还是false,IOS都可以侧滑返回
onPopInvoked: (didPop){
print(didPop);
},
child: Container()
);
@weigoudan 不过我这边回退到WillPopScope还是能够保留原始功能的,不像你说的设置true还是false都会侧滑退出,惹不起惹不起
GetX 里面设置popGesture: false可以解决
GetPage(
name: '/xxx',
page: () {
return const XXXPage();
},
popGesture: false,
),
GetX 里面设置popGesture: false可以解决
GetPage( name: '/xxx', page: () { return const XXXPage(); }, popGesture: false, ),
无效啊,iOS依然可以手势返回
GetPage里面设置popGesture: false可以解决
无效啊
升级到PopScope遇到了相同的问题,放弃了。 楼主的问题“用回WillPopScope,居然无论onWillPop设置true还是false,ios都不能侧滑返回”,换成null即可。
return WillPopScope(
onWillPop: canGoBack
? () async {
CoreKit.log('onWillPop() call controller function "goBack()"...');
await goBack();
return false;
}
: null,
child: child,
);