Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 容器中存在从自定义按钮打开的侧抽屉_Flutter_Dart_Flutter Layout - Fatal编程技术网

Flutter 容器中存在从自定义按钮打开的侧抽屉

Flutter 容器中存在从自定义按钮打开的侧抽屉,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我想从容器中存在的按钮打开侧抽屉,而不是从AppBar侧按钮。这也应该从右到左打开。 有关更多信息,我已添加了我的要求的屏幕截图这里有一个基本示例: @override Widget build(BuildContext context) { return Scaffold( endDrawer: Drawer(), appBar: AppBar(), body: Builder( builder: (context) {

我想从容器中存在的按钮打开侧抽屉,而不是从AppBar侧按钮。这也应该从右到左打开。
有关更多信息,我已添加了我的要求的屏幕截图

这里有一个基本示例:

@override
  Widget build(BuildContext context) {
    return Scaffold(
      endDrawer: Drawer(),
      appBar: AppBar(),
      body: Builder(
        builder: (context) {
          return Center(
            child: RaisedButton(
              child: Text("open drawer"),
              onPressed: () {
                Scaffold.of(context).openEndDrawer();
              },
            ),
          );
        },
      ),
    );
  }
或者您可以使用
ScaffoldState
GlobalKey


  GlobalKey<ScaffoldState> _key = new GlobalKey<ScaffoldState>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      key: _key,
      endDrawer: Drawer(),
      appBar: AppBar(),
      body: Center(
        child: RaisedButton(
          child: Text("open drawer"),
          onPressed: () {
            _key.currentState.openEndDrawer();
          },
        ),
      ),
    );
  }
}

GlobalKey _key=new GlobalKey();
@凌驾
小部件构建(构建上下文){
返回脚手架(
键:_键,
endDrawer:Drawer(),
appBar:appBar(),
正文:中(
孩子:升起按钮(
子项:文本(“打开抽屉”),
已按下:(){
_key.currentState.openEndDrawer();
},
),
),
);
}
}

查看此链接了解更多信息:

创建一个scaffold密钥,然后将您的scaffold小部件交给它

GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();

_scaffoldKey.currentState.openDrawer()
_scaffoldKey.currentState.openEndDrawer()