@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);
}
我自己的回调函数是
//监听物理返回键
Future<bool> _requestPop() {
if (Navigator.canPop(context)) {
Navigator.push(
context, DialogRouter(PublishMomentBackDialog(true)))
.then((value) => _saveContent(value));//监听返回键跳转到弹窗界面
}
return Future.value(false);
}