WillPopScope会阻止iOS返回手势?

项目中发现重写WillPopScope就会导致iOS无法手势回退。
在flutter的issue中发现有解决方案。https://github.com/flutter/flutter/issues/14203
解决思路是在iOS上监听滑动,并执行退出callback。

class MyWillPopScope extends StatelessWidget {
  const MyWillPopScope({
    required this.child,
    this.onWillPop,
    super.key,
  });

  final Widget child;
  final WillPopCallback? onWillPop;

  @override
  Widget build(BuildContext context) {
    return Platform.isIOS
        ? GestureDetector(
            onHorizontalDragUpdate: (details) {
              if (details.delta.dx > 0 && onWillPop != null) {
                onWillPop!.call();
              }
            },
            child: WillPopScope(
              onWillPop: onWillPop,
              child: child,
            ),
          )
        : WillPopScope(
            onWillPop: onWillPop,
            child: child,
          );
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容