WillPopScope会阻止iOS返回手势?

2023-12-28  本文已影响0人  旺仔_100

项目中发现重写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,
          );
  }
}
上一篇 下一篇

猜你喜欢

热点阅读