Flutter Drawer 抽屉视图与自定义header
本文最后更新于 2020年10月9日 晚上
移动开发中,drawerLayout抽屉视图是比较常用的一种控件。一般将用户的头像,用户名等信息在抽屉视图中呈现。
drawer中也可以提供一些选项,比如跳转去设置页,跳转去用户资料页面等等。
Flutter提供了Drawer组件;结合ListView等组件,开发者可以快速地制作出抽屉视图。
使用material中的UserAccountsDrawerHeader
使用material中的UserAccountsDrawerHeader,设置accountName和currentAccountPicture。
1 | |
使用UserAccountsDrawerHeader效果如下

UserAccountsDrawerHeader文档请见 https://docs.flutter.io/flutter/material/UserAccountsDrawerHeader-class.html
自定义header
Flutter有DrawerHeader,我们对其进行自定义。
DrawerHeader设置padding为0,充满整个顶部DrawerHeader的child使用Stack,目的是放置背景图片- 在
Stack偏左下的位置放置头像和用户名- 先用
Align确定对齐方式为FractionalOffset.bottomLeft Align的child为Container,并设定一个具体高度- 头像与文字的
Container仿照ListTile的风格,左边是一个头像,右边是文字;使用Row来分隔头像和文字 - 文字部分先用
Container的margin做出间隔,再放入一个Column来存放Text - 文字
Column设置水平方向左对齐与竖直方向居中
- 先用
1 | |
自定义header的效果图

在自定义header的过程中,我们组合使用了多种widget;
有层叠的Stack,用于对齐的Align,设定具体尺寸和margin的Container,水平放置的Row以及竖直放置的Column。
这些widget的各有特点,根据具体情况来组合使用。同一个UI效果,做法也不止一种。
Flutter Drawer 抽屉视图与自定义header
https://blog.rustfisher.com/Flutter/Flutter-Drawer_and_custom_header/