Flutter 侧边栏的使用,打开和关闭

在网上好多方法 但是有些点没有讲到
简单的说就是在 Scaffold 添加 Drawer

 var _scaffoldkey = new GlobalKey();//将Scaffold设置为全局变量
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    Drawer drawer = Drawer(
      child: ListView(
        children: [Text("1"), Text("1"), Text("1"), Text("1"), Text("1"), Text("1")],
      ),
    );
    return Scaffold(
      key: _scaffoldkey,
      drawer: drawer,
      appBar: AppBarUtil.getAppBar("头标题", method: (a) {
        if (a == 1) {
          //左边按钮
         openDrawer();
          return;
        }
        //右边按钮
      }),
    );
  }
  void openDrawer(){
    //通过全局变量打开侧边栏  
    //避免出现Scaffold.of() called with a context that does not contain a Scaffold的情况
    _scaffoldkey.currentState.openDrawer();
  }

这个AppBarUtil.getAppBar 是我自己创建的方法 当初因为自定义的按钮所以找了一些时间怎么打开和关闭

在主页面中
打开  Scaffold.of(context).openDrawer();
关闭  Navigator.pop(context)

不过如果不是自定义 的appBar 应该直接就会显示不会出现需要调用打开方法的情况

也可以右边侧边栏
把drawer改成endDrawer就行了

你可能感兴趣的:(Flutter 侧边栏的使用,打开和关闭)