Flutter 手动控制drawer(抽屉)打开关闭
PS:介绍两种方法可以设置drawer的打开:
- GlobalKey 方式打开
import "package:flutter/material.dart";
class MyTest extends StatefulWidget {
@override
_MyTestState createState() => new _MyTestState ();
}
class _MyTestState extends State<MyTest> {
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
@override
Widget build(BuildContext context) {
return new Scaffold(
key: _scaffoldKey,
drawer: new Drawer(),
appBar: new AppBar(
leading: new IconButton(
icon: new Icon(Icons.settings),
onPressed: () => _scaffoldKey.currentState.openDrawer()),
),
);
}
}
- builder方式
class _MyTestState extends State<MyTest> {
@override
Widget build(BuildContext context) {
return new Scaffold(
drawer: new Drawer(),
appBar: new AppBar(
leading: Builder(
builder: (context) => IconButton(
icon: new Icon(Icons.settings),
onPressed: () => Scaffold.of(context).openDrawer(),
),
),
),
);
}
}
网友评论