File tree Expand file tree Collapse file tree 6 files changed +117
-4
lines changed
docs/widget/navigator/drawer Expand file tree Collapse file tree 6 files changed +117
-4
lines changed Original file line number Diff line number Diff line change 1
- ## ** 文档完善中**
1
+ ## ** Drawer**
2
+ > 抽屉式组件,从Scaffold边缘水平滑出左侧菜单,也可通过Scaffold.of(context).openDrawer()显示左侧菜单。关闭页面通过Navigator.pop(context)。
3
+
4
+ ### 构造函数
5
+ ```
6
+ Drawer({
7
+ Key key,
8
+ double elevation: 16.0,
9
+ Widget child,
10
+ String semanticLabel
11
+ })
12
+ ```
13
+
14
+ ### 属性介绍
15
+ - child: 菜单内容
16
+ - elevation:导航栏底部阴影
17
+
18
+ ### 高级用法
19
+ - 关闭菜单
20
+ > Navigator.pop(context)
21
+ - 打开菜单
22
+ > 方法一: Scaffold.of(context).openDrawer()
23
+ ```
24
+ 使用context变量时,需要注意在scaffold中增加Builder来获取到context,该context才是scaffold中的上下文对象,而Build build(BuildContext context)是外层类的上下文,没法操作菜单
25
+ Builder(
26
+ builder: (context) {
27
+ return RaisedButton(
28
+ onPressed: () {
29
+ Scaffold.of(context).openDrawer();
30
+ },
31
+ child: Text("点击滑出左侧菜单"),
32
+ );
33
+ },
34
+ ),
35
+ ```
36
+
37
+ > 方法二: static GlobalKey<ScaffoldState > _ globalKey= new GlobalKey();
38
+ ```
39
+ 定义globalKey
40
+
41
+ static GlobalKey<ScaffoldState> _globalKey= new GlobalKey();
42
+ ...
43
+ Scaffold(
44
+ key: _globalKey , //设置key
45
+ ...
46
+ )
47
+
48
+ 通过globalkey操作菜单状态
49
+ _globalKey.currentState.openDrawer()
50
+ ```
Original file line number Diff line number Diff line change @@ -12,12 +12,12 @@ class Index extends StatelessWidget {
12
12
@override
13
13
Widget build (BuildContext context) {
14
14
Size size = MediaQuery .of (context).size;
15
- double _dp = 1.4 ;
15
+ double _dp = 1.5 ;
16
16
return Store .connect (
17
17
builder: (context, child, MainStateModel model) {
18
18
return Center (
19
19
child: Container (
20
- width: size.width / _dp ,
20
+ width: size.width,
21
21
height: size.height / _dp,
22
22
margin: EdgeInsets .all (30 / _dp),
23
23
decoration: BoxDecoration (
Original file line number Diff line number Diff line change @@ -18,7 +18,70 @@ class _IndexState extends State<Index> {
18
18
title: Text ('Drawer' ),
19
19
),
20
20
body: Center (
21
- child: Text ('更新中' ),
21
+ child: Column (
22
+ mainAxisAlignment: MainAxisAlignment .center,
23
+ children: [
24
+ Builder (
25
+ builder: (context) {
26
+ return RaisedButton (
27
+ onPressed: () {
28
+ Scaffold .of (context).openDrawer ();
29
+ },
30
+ child: Text ("点击滑出左侧菜单" ),
31
+ );
32
+ },
33
+ ),
34
+ Text ('从左侧中滑出菜单组件' ),
35
+ ],
36
+ ),
37
+ ),
38
+ drawer: Drawer (
39
+ child: Column (
40
+ crossAxisAlignment: CrossAxisAlignment .start,
41
+ children: < Widget > [
42
+ Padding (
43
+ padding: const EdgeInsets .only (top: 38.0 ),
44
+ child: Row (
45
+ children: < Widget > [
46
+ Padding (
47
+ padding: const EdgeInsets .symmetric (horizontal: 16.0 ),
48
+ child: ClipOval (
49
+ child: Image .asset (
50
+ "assets/imgs/avatar.png" ,
51
+ width: 80 ,
52
+ ),
53
+ ),
54
+ ),
55
+ Text (
56
+ "Guest" ,
57
+ style: TextStyle (fontWeight: FontWeight .bold),
58
+ )
59
+ ],
60
+ ),
61
+ ),
62
+ Expanded (
63
+ child: ListView (
64
+ children: < Widget > [
65
+ ListTile (
66
+ leading: Icon (Icons .account_circle),
67
+ title: Text ('Change Account' ),
68
+ ),
69
+ ListTile (
70
+ leading: Icon (Icons .settings),
71
+ title: Text ('Setting' ),
72
+ ),
73
+ ListTile (
74
+ leading: Icon (Icons .close),
75
+ title: Text ('点击关闭菜单' ),
76
+ onTap: () {
77
+ Navigator .pop (context);
78
+ },
79
+ ),
80
+ ],
81
+ ),
82
+ ),
83
+ ],
84
+ ),
22
85
),
23
86
);
24
87
}
Original file line number Diff line number Diff line change @@ -58,6 +58,7 @@ flutter:
58
58
assets :
59
59
- locale/
60
60
- assets/
61
+ - assets/imgs/
61
62
- docs/widget/scrollview/customscrollview/
62
63
- docs/widget/scrollview/gridview/
63
64
- docs/widget/scrollview/listview/
You can’t perform that action at this time.
0 commit comments