Flutter 监听返回键

Flutter 监听返回键

WillPopScope的注释:

注册一个回调函数来否决用户试图关闭封闭的[ModalRoute]。

抱歉,每个字我都认识,这一句话理解不了…

通过 WillPopScope 可以实现对返回键点击事件的监听,通过 onWillPop 回调函数可以处理响应点击事件

参考自:此文章

@override
Widget build(BuildContext context) {
  return WillPopScope(
      onWillPop: _requestPop,
      child: Scaffold(
        appBar: AppBar(
          title: Text('工作须知'),
          leading: IconButton(
            icon: Icon(Icons.arrow_back),
            onPressed: () {
              print("退出${Navigator.canPop(context)}");
              if (Navigator.canPop(context)) {
                Navigator.pop(context);
              } else {
                SystemNavigator.pop();
              }
            },
          ),
        ),
       ),
    );
   }

Future<bool> _requestPop() {
    print("POP");
    if (Navigator.canPop(context)) {
      Navigator.pop(context);
    } else {
      SystemNavigator.pop();
    }
    return Future.value(false); 
  }

WillPopScope 这种模式,如果不在AppBar写Ieading处理事件,是可以监听返回按钮的,这里指左上角那个返回,实体按键是检测不到的(华为P30检测不到…)

可以考虑用plugin调android 原生参考该文章

在flutter官网中Platform adaptations有回退导航介绍:

Back navigation
On Android, the OS back button, by default, is sent to Flutter and pops the top route of the WidgetsApp’s Navigator.

On iOS, an edge swipe gesture can be used to pop the top route.

不过没啥用,2个字’然并无’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值