Flutter 监听物理返回键

手机软件开发 2024-9-8 12:03:38 113 0 来自 中国
在 Android 平台中,有个物理返回键,一样寻常默认可以返回上一个页面。Android 中 Activity 会提供返回键的监听函数,但是在 Flutter 中齐备皆是 Widget,它并没有像 Android 如许直接提供某个监听函数,而是通过 WillPopScope 组件来实现返回键的监听的。
1. WillPopScope

这是一个有状态组件,只必要将组件外包一层 WillPopScope 组件即可。
class WillPopScope extends StatefulWidget {  const WillPopScope({    super.key,    required this.child,    required this.onWillPop,  }) : assert(child != null);    final Widget child;  final WillPopCallback? onWillPop;}onWillPop 是一个 Future<bool> 函数,可以监听物理返回键变乱。如果返回 true,则会回退到上一个页面,如果返回 false,则直接拦截了物理返回键。
2. 在页面中利用

  @override  Widget build(BuildContext context) {    var size = MediaQuery.of(context).size;    return Scaffold(      body: WillPopScope(          child: Container(),          onWillPop: () async {            //这里可以相应物理返回键            return false;            }),    );  }在页面中利用时,只必要在 Scaffold 的 body 属性里包上一层 WillPopScope 。
3. 弹窗中制止物理返回键取消弹窗

  showDialog(      context: context,      barrierDismissible: false,      builder: (context) {        return WillPopScope(            child: AlertDialog(              title: ' ',              content: ' ',              actions: actions,            ),            onWillPop: () async {              //弹窗弹出后,按物理返回键,就不会取消弹窗了              return false;            });      });可见,在 Flutter 中齐备皆 Widget,连一个物理返回键的变乱也是通过 Widget 来实现的。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-12-4 16:35, Processed in 0.145900 second(s), 33 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表