Flutter Drawer 侧边栏、以及侧边栏内 容布局
Flutter Drawer 侧边栏
在 Scaffold 组件里面传入 drawer 参数可以定义左侧边栏,传入 endDrawer 可以定义右侧边 栏。侧边栏默认是隐藏的,我们可以通过手指滑动显示侧边栏,也可以通过点击按钮显示侧 边栏。
- return Scaffold(
- appBar: AppBar(
- title: Text("Flutter App"), ),
- drawer: Drawer(
- child: Text('左侧边栏'),
- ),
- endDrawer: Drawer(
- child: Text('右侧侧边栏'), ),
- );
Flutter DrawerHeader
常见属性:
属性 |
描述 |
decoration |
设置顶部背景颜色 |
child |
配置子元素 |
padding |
内边距 |
margin |
外边距 |
Flutter UserAccountsDrawerHeader
属性 |
描述 |
decoration |
设置顶部背景颜色 |
accountName |
账户名称 |
accountEmail |
账户邮箱 |
currentAccountPicture |
用户头像 |
otherAccountsPictures |
|
margin |
Flutter 侧边栏路由跳转
- onTap: (){
- Navigator.of(context).pop();
- Navigator.pushNamed(context, '/search');
- }
- import 'package:flutter/material.dart';
- import 'tabs/Home.dart';
- import 'tabs/Category.dart';
- import 'tabs/Setting.dart';
- class Tabs extends StatefulWidget {
- final index;
- Tabs({Key key,this.index=0}) : super(key: key);
- _TabsState createState() => _TabsState(this.index);
- }
- class _TabsState extends State<Tabs> {
- int _currentIndex;
- _TabsState(index){
- this._currentIndex=index;
- }
- List _pageList=[
- HomePage(),
- CategoryPage(),
- SettingPage(),
- ];
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: AppBar(
- title: Text("Flutter App"),
- ),
- body: this._pageList[this._currentIndex],
- bottomNavigationBar: BottomNavigationBar(
- currentIndex: this._currentIndex, //配置对应的索引值选中
- onTap: (int index){
- setState(() { //改变状态
- this._currentIndex=index;
- });
- },
- iconSize:36.0, //icon的大小
- fixedColor:Colors.red, //选中的颜色
- type:BottomNavigationBarType.fixed, //配置底部tabs可以有多个按钮
- items: [
- BottomNavigationBarItem(
- icon: Icon(Icons.home),
- title: Text("首页")
- ),
- BottomNavigationBarItem(
- icon: Icon(Icons.category),
- title: Text("分类")
- ),
- BottomNavigationBarItem(
- icon: Icon(Icons.settings),
- title: Text("设置")
- )
- ],
- ),
- drawer: Drawer(
- child: Column(
- children: <Widget>[
- Row(
- children: <Widget>[
- Expanded(
- child: UserAccountsDrawerHeader(
- accountName:Text("张三"),
- accountEmail: Text("8888@163.com"),
- currentAccountPicture: CircleAvatar(
- backgroundImage: NetworkImage("http://pic23.nipic.com/20120830/9686992_180336646144_2.jpg"),
- ),
- decoration:BoxDecoration(
- image: DecorationImage(
- image: NetworkImage("http://pic31.nipic.com/20130801/11604791_100539834000_2.jpg"),
- fit:BoxFit.cover,
- )
- ),
- otherAccountsPictures: <Widget>[
- Image.network("http://k.zol-img.com.cn/dcbbs/22000/a21999018_01000.jpg"),
- Image.network("http://pic38.nipic.com/20140211/17882171_143443301183_2.jpg"),
- ],
- )
- )
- ],
- ),
- ListTile(
- leading: CircleAvatar(
- child: Icon(Icons.home)
- ),
- title: Text("我的空间"),
- ),
- Divider(),
- ListTile(
- leading: CircleAvatar(
- child: Icon(Icons.people)
- ),
- title: Text("用户中心"),
- onTap: (){
- Navigator.of(context).pop(); //隐藏侧边栏
- Navigator.pushNamed(context, '/user');
- },
- ),
- Divider(),
- ListTile(
- leading: CircleAvatar(
- child: Icon(Icons.settings)
- ),
- title: Text("设置中心"),
- ),
- Divider(),
- ],
- ),
- ),
- endDrawer: Drawer(
- child: Text('右侧侧边栏'),
- ),
- );
- }
- }
Flutter Drawer 侧边栏、以及侧边栏内 容布局的更多相关文章
- Drawer 侧边栏、以及侧边栏内 容布局
一.Flutter Drawer 侧边栏 在 Scaffold 组件里面传入 drawer 参数可以定义左侧边栏,传入 endDrawer 可以定义右侧边栏.侧边栏默认是隐藏的,我们可以通过手指滑动显 ...
- Flutter——Drawer、DrawerHeader、UserAccountsDrawerHeader组件(侧边栏组件)
在 Scaffold 组件里面传入 drawer 参数可以定义左侧边栏,传入 endDrawer 可以定义右侧边栏.侧边栏默认是隐藏的,我们可以通过手指滑动显示侧边栏,也可以通过点击按钮显示侧边栏. ...
- Revit API创建一个拷贝房间内对象布局命令
本课程演示创建一个拷贝房间内对象布局命令,完整演示步骤和代码.这个命令把选中房间内的对象复制到其它选中的一个或多个房间中,而且保持与源房间一致的相对位置.通过本讲座使听众知道创建一个二次开发程序很简单 ...
- ecshop 前台个人中心修改侧边栏 和 侧边栏显示不全 或 导航现实不全
怎么给个人中心侧边栏加项或者减项 在模板文件default/user_menu.lbi 文件里添加或者修改,一般看到页面都会知道怎么加,怎么删,这里就不啰嗦了 添加一个栏目以后,这个地址跳的页面怎么写 ...
- Flutter -------- Drawer侧滑
侧滑菜单在安卓App里面非常常见 抽屉通常与Scaffold.drawer属性一起使用.抽屉的子项通常是ListView,其第一个子项是DrawerHeader ,它显示有关当前用户的状态信息.其余的 ...
- flutter drawer 自定义图标 icon 手动打开drawer
方法1:GlobalKey import "package:flutter/material.dart"; class Test extends StatefulWidget { ...
- Bootstrap内栅格布局,表格,按钮,图片的个人总结
栅格布局: container,固定宽度的容器. container-fluid,百分百宽度的容器. 使用行(row)在水平方向上创建一组列(colmun). 每一行中最多能够包含12列,超出的列则另 ...
- Flutter利用GridView实现网格的商品布局
GridView.count 生成的是静态网格 效果: 代码: import 'package:flutter/material.dart'; void main() { runApp(MyApp() ...
- 37 Flutter仿京东商城项目 结算页面布局
加群452892873 下载对应34课文件,运行方法,建好项目,直接替换lib目录 CheckOut.dart import 'package:flutter/material.dart'; impo ...
随机推荐
- python蟒蛇绘制的代码以及目前还不知道怎么用的RGB颜色对照表
#PythonDraw.py import turtle#引入海龟库 turtle.setup(650,350,200,200)#确定窗口大小,长650,高350,确定窗口位置,距离电脑左上角200, ...
- Java精通并发-自旋对于synchronized关键字的底层意义与价值分析以及互斥锁属性详解与Monitor对象特性解说【纯理论】
自旋对于synchronized关键字的底层意义与价值分析: 对于synchronized关键字的底层意义和价值分析,下面用纯理论的方式来对它进行阐述,自旋这个概念就会应运而生,还是很重要的,下面阐述 ...
- Kotlin星投影与泛型约束详解
星投影(star projection): 继续来学习Kotlin泛型相关的东东,星投影(star projection),这是个啥东东呢?下面先来说一下概念: 1.对于Star<out T&g ...
- 【Vue-01】基础Vue语法+JS复习
Vue学习疑问及总结_SZS 0.vue router 带参数跳转 发送:this.$router.push({path:'/news',query:{id:row.id}}) 接收:var id=t ...
- 2019-2020-1 20199301《Linux内核原理与分析》第四周作业
Week4 MenuOS的构造 一.上周复习 计算机的三大法宝: 存储程序计算机: 函数调用堆栈: 中断. 操作系统的两把宝剑: 中断上下文-保存现场和恢复现场 进程上下文 二.Linux内核源代码简 ...
- 评估预测函数(2)---对hypothesis进行评估
当有多个features时,无法通过图像来评估hypothesis 当我们的hypothesis只有一个features时,可以通过观察它的图像来看它是否overfitting,但是如果我们有多个fe ...
- python同时取每个列表的第一个元素
在实际爬虫开发中, 经常用到列表保存数据, 在使用这些数据的时候,需要要取每个列表里的第一个元素进行拼接. 就需要用到python的内置方法:“zip()" # 现在有3个列表:li_1, ...
- 09 webpack的介绍
webpack干嘛的?: 模块打包机,分析目录结构,找到js模块(包括浏览器不能直接识别的代码 typscript sass...),打包成合适的格式供浏览器访问 webpack是一款模块加载器兼打 ...
- Tensorflow细节-P190-输入文件队列
以下代码要学会几个地方 1.filename = ('data.tfrecords-%.5d-of-%.5d' % (i, num_shards)) 这个东西就是要会data.tfrecords-%. ...
- VS - Microsoft.Practices.EnterpriseLibrary.Logging
string fileName = AppDomain.CurrentDomain.BaseDirectory + "\\log.txt";File.AppendAllText(f ...