Flutter 容器中存在从自定义按钮打开的侧抽屉
我想从容器中存在的按钮打开侧抽屉,而不是从AppBar侧按钮。这也应该从右到左打开。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) {
有关更多信息,我已添加了我的要求的屏幕截图这里有一个基本示例:
@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()