在Scaffold组件里面传入drawer参数可以定义左侧边栏,传入endDrawer可以定义右侧边栏。侧边栏默
认是隐藏的,我们可以通过手指滑动显示侧边栏,也可以通过点击按钮显示侧边栏。

class MyFlutterApp extends StatelessWidget {
const MyFlutterApp({super.key}); @override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Flutter App")),
drawer: const Drawer(
child: Text("左侧侧边栏"),
),
endDrawer: const Drawer(
child: Text("左侧侧边栏"),
),
);
}
}
 

Flutter DrawerHeader

常见属性:

class MyFlutterApp extends StatelessWidget {
const MyFlutterApp({super.key}); @override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Flutter App")),
drawer: const Drawer(
child: Column(
children: [
Row(
children: [
Expanded(
flex: 1,
child: DrawerHeader(
decoration: BoxDecoration( //头部
color: Colors.red, //背景颜色
image: DecorationImage(
image: NetworkImage("https://www.itying.com/images/flutter/3.png"),
fit: BoxFit.cover) //背景图片(不是圆形)
),
child: Text("头部")
),
)
],
), // SizedBox(height: 60,), //顶部间距
// DrawerHeader(
// decoration: BoxDecoration(
// color: Colors.red //背景颜色
// ),
// child: Text("头部"),
// ),
ListTile(
leading: CircleAvatar(
child: Icon(Icons.people),
),
title: Text("个人中心"),
),
ListTile(
leading: CircleAvatar(
child: Icon(Icons.toll),
),
title: Text("设置"),
)
],
)),
endDrawer: const Drawer(
child: Text("右侧侧边栏"),
),
);
}
}

自定义头像
//头像需要自己去定义
class MyFlutterApp extends StatelessWidget {
const MyFlutterApp({super.key}); @override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Flutter App")),
drawer: const Drawer(
child: Column(
children: [
Row(
children: [
Expanded(
flex: 1,
child: DrawerHeader(
//头部
decoration: BoxDecoration(
color: Colors.red, //背景颜色
image: DecorationImage(
image: NetworkImage(
"https://www.itying.com/images/flutter/3.png"),
fit: BoxFit.cover) //背景图片(不是圆形)
),
child: Column(
children: [
ListTile(
leading: CircleAvatar(
backgroundImage: NetworkImage(
"https://www.itying.com/images/flutter/3.png",
), //图片(圆形)
// child: Image.network("https://www.itying.com/images/flutter/3.png"),图片(不是圆形)
),
title: Text("个人中心"),
),
ListTile(
title: Text("邮箱: 111111111@qq.com"),
)
],
),
),
)
],
), // SizedBox(height: 60,), //顶部间距
// DrawerHeader(
// decoration: BoxDecoration(
// color: Colors.red //背景颜色
// ),
// child: Text("头部"),
// ),
ListTile(
leading: CircleAvatar(
child: Icon(Icons.people),
),
title: Text("个人中心"),
),
ListTile(
leading: CircleAvatar(
child: Icon(Icons.toll),
),
title: Text("设置"),
)
],
)),
endDrawer: const Drawer(
child: Text("右侧侧边栏"),
),
);
}
}

Flutter UserAccountsDrawerHeader

常见属性:

class MyFlutterApp extends StatelessWidget {
const MyFlutterApp({super.key}); @override
Widget build(BuildContext context) {
return Scaffold( appBar: AppBar(title: Text("Flutter App")),
drawer: Drawer(
width: 500, // 设置自定义宽度
child: Column(
children: [
Row(
children: [
Expanded(
flex: 1,
child: UserAccountsDrawerHeader(
decoration: const BoxDecoration(
image: DecorationImage(
image: NetworkImage(
"https://www.itying.com/images/flutter/3.png"),
fit: BoxFit.cover,
) //背景图片
),
currentAccountPicture: const CircleAvatar(
backgroundImage: NetworkImage(
"https://www.itying.com/images/flutter/3.png"), //用户头像
),
otherAccountsPictures: [ //他账户头像(图片)
//
Image.network(
"https://www.itying.com/images/flutter/3.png"),
Image.network(
"https://www.itying.com/images/flutter/3.png"),
Image.network(
"https://www.itying.com/images/flutter/3.png"),
],
accountName: Text("张三"),
accountEmail: Text("11111111@qq.com"),
),
)
],
),
const ListTile(
leading: CircleAvatar(
child: Icon(Icons.people),
),
title: Text("个人中心"),
),
const ListTile(
leading: CircleAvatar(
child: Icon(Icons.toll),
),
title: Text("设置"),
)
],
)),
endDrawer: const Drawer(
child: Text("右侧侧边栏"),
),
);
}
}

22、Scaffold属性 抽屉菜单Drawer的更多相关文章

  1. [UI]抽屉菜单DrawerLayout分析(一)

    本文转载于:http://www.cnblogs.com/avenwu/archive/2014/04/16/3669367.html 侧拉菜单作为常见的导航交互控件,最开始在没有没有android官 ...

  2. android自定义viewgroup初步之一----抽屉菜单

    转载请注明出处 http://blog.csdn.net/wingichoy/article/details/47832151 几天前在慕课网上看到鸿洋老师的 自定义卫星菜单,感觉很有意思,于是看完视 ...

  3. 可折叠的ToolBar+抽屉菜单NavigationView+浮动按钮FloatButton

    使用Material Design风格的ToolBar和抽屉导航 先看个简单的运行效果 主要记录下布局的写法 1 用到的Google Design依赖和V7包依赖 compile 'com.andro ...

  4. Android抽屉菜单DrawerLayout的实现案例

    (1)项目布局文件 activity_main.xml <android.support.v4.widget.DrawerLayout xmlns:android="http://sc ...

  5. [UI]抽屉菜单DrawerLayout分析(三)

    在[UI]抽屉菜单DrawerLayout分析(一)和[UI]抽屉菜单DrawerLayout分析(二)中分别介绍了DrawerLayout得基本框架结构和ViewDragerHelper的作用以及手 ...

  6. wemall doraemon中Android app商城系统解决左侧抽屉菜单和viewpager不能兼容问题

    完美解决左侧抽屉菜单和viewpager不能兼容左右滑动的问题,可进行参考. WeMall-Client/res/layout/wemall_main_ui.xml </RadioGroup&g ...

  7. Android导航抽屉-Navigation Drawer

    Google今年七月份的时候更新了他们的Google+应用,采用了新的导航方式并抛弃了navigationdrawer.一时之间,又引发了一系列关于NavigationDrawer利弊的讨论,不过对于 ...

  8. android 5.X Toolbar+DrawerLayout实现抽屉菜单

    前言  android5.X新增的一个控件Toolbar,这个控件比ActionBar更加自由,可控,因为曾经的ActionBar的灵活性比較差,所以google逐渐使用Toolbar替代Action ...

  9. Android Design Support Library(二)用NavigationView实现抽屉菜单界面

    NavigationView在MD设计中非常重要,之前Google也提出了使用DrawerLayout来实现导航抽屉.这次,在Android Design Support Library中,Googl ...

  10. 安卓导航抽屉 Navigation Drawer 实现沉浸通知栏

    在使用 Navigation Drawer Activity 模版的时候,遇到了通知栏无法完全沉浸的问题,尝试搜索一些现有的解决方法,但是或多或少都会存在一些问题,通过反复尝试找到找到了一种比较靠谱的 ...

随机推荐

  1. CIC滤波器仿真与实验过程及结果记录

    整理于2023-10-08 0.0 前言: 前面介绍了使用matlab中的Filter Designer工具箱进行CIC抽取滤波器设计的仿真过程与结果.下面在前面的基础上针对现有的[正点原子ZYNQ] ...

  2. Android Tools Project Site

    Android Tools Project Site Search this site   Projects Overview Screenshots Release Status Roadmap D ...

  3. 2020 5 17 codeforces

    cf还没结束,就开始写总结了.cf确实是个好东西,能够直接暴露出弱点和增加刷题量.以后还是要多打打的.这次我发现自己的码力还是不行.一个二分都要调好久.唉T1sb题,就是入门用的.题目看不懂...写了 ...

  4. salesforce零基础学习(一百三十三)ListView的button思考

    本篇参考: salesforce零基础学习(九十五)lightning out salesforce零基础学习(一百一十)list button实现的一些有趣事情 https://help.sales ...

  5. 研发日常踩坑-Mysql分页数据重复

    踩坑描述: 写分页查询接口,order by和limit混用的时候,出现了排序的混乱情况 在进行第N页查询时,出现与第一前面页码的数据一样的记录. 问题 在MySQL中分页查询,我们经常会用limit ...

  6. JVM-Java语法糖与Java编译器

    基本类型和其包装类型之间的自动转换,也就是自动装箱.自动拆箱,是通过加入[Wrapper].valueOf(如 Integer.valueOf)以及[Wrapper].[primitive]Value ...

  7. atest

    #include<iostream> using namespace std; int main() { reutrn 0; }

  8. 电路中的N.M.缩写含义

    国外的一些电路中会发现在一些器件旁会有 N.M. 的标注. N.M. = Not Mount

  9. python中面向对象有什么特点

    一:问题 python中面向对象有什么特点? 二:回答 python同其他面向对象语言一样,有3个特征:封装.继承.重写 简单理解就是:封装:把一系列属性和操作封装到一个方法里面,这样想要实现某种效果 ...

  10. 深入了解MD5加密技术及其应用与局限

    一.MD5简介 MD5(Message Digest Algorithm 5)是一种单向散列函数,由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)于1991年发明.它主要用于将任 ...