在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. Docker CE

    3. 安装Docker CE Docker有两个分支版本:Docker CE和Docker EE,即社区版和企业版.本教程基于CentOS 7安装Docker CE. 执行如下命令,安装Docker的 ...

  2. CMP临时文件清理

    ■■ CMP临时文件 CMP - 指 Compression Advisor ,是 Oracle 数据库的压缩建议特性,在生成建议时产生的中间过程表,一般会自行删除.这个特性自 11.2.0.4 引入 ...

  3. C#怎样链接mysql数据库

    C#一般链接sqlserver数据库,当然也会链接oracle.C#和MYSQL搭配貌似不多见哦 下面说说方法. 1.下载链接库文件,MySql.Data.dll MySql.Data.rar 2.工 ...

  4. Atcoder Regular Contest 167

    卡 B 下大分了. A. Toasts for Breakfast Party 发现题意是让方差尽可能小,就是让 \(A\) 里的值尽可能接近. 所以从小到大排个序,把 \(A_{N,\dots,N- ...

  5. Python 利用pandas和mysql-connector获取Excel数据写入到MySQL数据库

    如何将Excel数据插入到MySQL数据库中 在实际应用中,我们可能需要将Excel表格中的数据导入到MySQL数据库中,以便于进行进一步的数据分析和处理.本文将介绍如何使用Python将Excel表 ...

  6. 洛谷P3392 涂国旗(暴力枚举)

    # 涂国旗 ## 题目描述 某国法律规定,只要一个由 $N \times M$ 个小方块组成的旗帜符合如下规则,就是合法的国旗.(毛熊:阿嚏--) - 从最上方若干行(至少一行)的格子全部是白色的: ...

  7. React 基础介绍以及demo实践

    这篇文章是之前给新同事培训react基础所写的文章,现贴这里供大家参考: 1.什么是React? React 是一个用于构建用户界面的JavaScript库核心专注于视图,目的实现组件化开发 2.组件 ...

  8. 使用 Vue 3 插件(Plugin)实现 OIDC 登录和修改密码(OIDC 系统以 Keycloak 为例)

    背景 目前单位系统常用 Keycloak 作为认证系统后端,而前端之前写的也比较随意,这次用 Vue 3 插件以及 Ref 响应式来编写这个模块.另外,这个可能是全网唯一使用 keycloak 的 O ...

  9. 三菱PLC 轻松数采

    目前市面上数采的软件有很多,但是用的最为省力最为简单的就是kepserver了,在kepserver的应用中,有对应的三菱驱动针对于三菱PLC,三菱驱动支持多个Mitsubishi 协议,包括 MEL ...

  10. Kafka 如何保证消息消费的全局顺序性

    哈喽大家好,我是咸鱼 今天我们继续来讲一讲 Kafka 当有消息被生产出来的时候,如果没有指定分区或者指定 key ,那么消费会按照[轮询]的方式均匀地分配到所有可用分区中,但不一定按照分区顺序来分配 ...