我是一个新手,刚刚完成入门教程.我想创建一个侧菜单,当你滑动时,它会出现在左边(比如Android上的Gmail).

不幸的是,我在文档中找不到这样的布局,而且Flutter 图库中的示例有点凌乱.

有人能给我解释一下如何实现这样的Widget吗?

推荐答案

下面是一个简单抽屉的示例(我刚刚调整了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个是一个很好的起点.)

顺便说一句:在你的脚手架上放一个抽屉也能帮你完成菜单按钮和向左滑动的动作.

Dart相关问答推荐

S,返回Future.sync()的函数和不需要等待的异步函数有什么区别?

如何在将构造函数参数赋给最终变量和传递给超级构造函数之前操作它?

`异步内联方法`的这些定义之间有什么区别?

Flutter 布局:如何在 Flutter 中将 Row 放入 Flex(或另一个 Row)中?还使用堆栈小部件

如何在Flutter中制作视频缩略图?

Flutter中TextFieldForm中的字母间距

在Dart中进行系统调用?

触发从小部件到状态对象的函数

Flutter|Dart 创建匿名类

Swipe返回手势

如何实现 Iterable

如何在 Flutter 包/插件开发中添加assets?

异常:在Flatter项目上没有Linux桌面项目配置错误

如何在dart中四舍五入?

如何从列表中的元素创建逗号分隔的字符串

以编程方式使dart中的十六进制 colored颜色 变亮或变暗

如何从 Dart 中的字符串中删除换行符?

将多张map合并/合并为一张map

Dart 有没有办法测量小代码的执行时间

如何在构造函数中初始化最终类属性?