【发布时间】:2017-09-28 23:25:51
【问题描述】:
我是 Flutter 的新手,刚刚完成了入门教程。我想创建一个侧边菜单,当您滑动时会从左侧出现(如 Android 上的 Gmail)。
不幸的是,我在文档中找不到这样的布局,而且颤振库中的示例有点混乱。
有人可以解释一下如何实现这样的小部件吗?
【问题讨论】:
-
你摇滚!感谢 YouTube 频道。
我是 Flutter 的新手,刚刚完成了入门教程。我想创建一个侧边菜单,当您滑动时会从左侧出现(如 Android 上的 Gmail)。
不幸的是,我在文档中找不到这样的布局,而且颤振库中的示例有点混乱。
有人可以解释一下如何实现这样的小部件吗?
【问题讨论】:
在脚手架中只需指定drawer: Drawer()
例子:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
drawer: Drawer( // this will set the drawer
child: MyWidget // render your drawer Widget here
),
... // props hidden
);
}
}
【讨论】:
这是一个简单抽屉的示例(我刚刚从flutter create调整了默认项目设置):
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('TestProject'),
),
drawer: new Drawer(
child: new ListView(
children: <Widget> [
new DrawerHeader(child: new Text('Header'),),
new ListTile(
title: new Text('First Menu Item'),
onTap: () {},
),
new ListTile(
title: new Text('Second Menu Item'),
onTap: () {},
),
new Divider(),
new ListTile(
title: new Text('About'),
onTap: () {},
),
],
)
),
body: new Center(
child: new Text(
'Center',
),
),
);
}
}
docs 是一个很好的起点 ;)
顺便说一句:在您的脚手架中包含一个抽屉还可以为您处理菜单按钮和向左滑动手势。
【讨论】:
Stocks example 对 Drawer 的使用不太复杂。
【讨论】: