在Flutter中关闭背面的抽屉

时间:2019-03-12 14:39:27

标签: dart flutter

我正在为现有项目添加麻烦。在flutter模块中,我有一个包含抽屉的主页。但是在背面按drawer并没有关闭。

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: HomePage(),
    drawer: Drawer(),
  );
}

1 个答案:

答案 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
          
        },