我正在为现有项目添加麻烦。在flutter模块中,我有一个包含抽屉的主页。但是在背面按drawer
并没有关闭。
@override
Widget build(BuildContext context) {
return Scaffold(
body: HomePage(),
drawer: Drawer(),
);
}
答案 0 :(得分:1)
CopsOnRoad 的回答很棒。这只是一个更新版本
用更好的方法来检测抽屉是否
打开或不使用 Scaffold
属性 onDrawerChanged
bool _drawerIsOpened;
Widget build(BuildContext context) {
return Scaffold(
drawer: Drawer(),
onDrawerChanged: (isopened) => _drawerIsOpened = isopened,
body: WillPopScope(
onWillPop: () {
if (_drawerIsOpened == true) {
Navigator.of(context).pop(); // close the drawer
return Future.value(false); // don't close the app
}
// you can return ShowDialog() here instead of Future true
return Future.value(true); // close the app
},