flutter WillPopScope拦截导航返回,实现退出确认弹窗或点击两次退出
属性
const WillPopScope({Key? key,required this.child,//布局内容required this.onWillPop,//返回拦截处理})
需要注意:WillPopScope必须包裹在布局的最外层。
使用实例:
main() {runApp( MaterialApp(home: _WillPopScopeWidget(),));
}
class _WillPopScopeWidget extends StatefulWidget {@overrideState<StatefulWidget> createState() => _WillPopScopeState();
}class _WillPopScopeState extends State<_WillPopScopeWidget> {String msg = '按返回键退出';@overrideWidget build(BuildContext context) => WillPopScope(child: Scaffold(body: Center(child: Text(msg),),),onWillPop: () async {var result = await showDialog<bool>(builder: (BuildContext context) {return AlertDialog(shape: const RoundedRectangleBorder(),backgroundColor: Colors.red,elevation: 0,title: const Text('提示'),content: const Text('确定要退出吗?'),actions: [TextButton(onPressed: () {Navigator.of(context).pop( false);},child: const Text('取消')),TextButton(onPressed: () {Navigator.of(context).pop( true);},child: const Text('确定'))],);},context: context);return result!;},);
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
