如何以编程方式关闭脚手架抽屉

时间:2019-07-30 08:58:06

标签: flutter dart

我想从Scaffold小部件外部以编程方式关闭抽屉。我使用_scaffoldkey.currentState.openDrawer打开抽屉。

有没有类似的方法可以关闭抽屉?

2 个答案:

答案 0 :(得分:2)

为此,您可以使用Navigator.popdocumentation也指出:

  

要在打开抽屉后将其关闭,请使用Navigator.pop

Navigator.of(context).pop();

答案 1 :(得分:1)

简短答案:

Navigator.pop(context);

如果您愿意在按下后退按钮时关闭抽屉,则可以使用

return WillPopScope(
  onWillPop: () {
    bool isDrawerOpen = _scaffoldKey.currentState.isDrawerOpen;
    if (isDrawerOpen) {
      Navigator.pop(context); // close the drawer
      return Future.value(false); // don't allow app to navigate back
    } else {
      return Future.value(true); // allow app to navigate back
    }
  },
  child: Scaffold(...),
);