Flutter Drawer 侧边栏

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

  1. return Scaffold(
  2. appBar: AppBar(
  3. title: Text("Flutter App"), ),
  4. drawer: Drawer(
  5. child: Text('左侧边栏'),
  6. ),
  7. endDrawer: Drawer(
  8. child: Text('右侧侧边栏'), ),
  9. );

Flutter DrawerHeader

常见属性:

属性

描述

decoration

设置顶部背景颜色

child

配置子元素

padding

内边距

margin

外边距

Flutter UserAccountsDrawerHeader

属性

描述

decoration

设置顶部背景颜色

accountName

账户名称

accountEmail

账户邮箱

currentAccountPicture

用户头像

otherAccountsPictures

  1. 用来设置当前账户其他账户头像

margin

 

Flutter 侧边栏路由跳转

  1. onTap: (){
  2. Navigator.of(context).pop();
  3. Navigator.pushNamed(context, '/search');
  4. }
  1. import 'package:flutter/material.dart';
  2. import 'tabs/Home.dart';
  3. import 'tabs/Category.dart';
  4. import 'tabs/Setting.dart';
  5.  
  6. class Tabs extends StatefulWidget {
  7. final index;
  8. Tabs({Key key,this.index=0}) : super(key: key);
  9.  
  10. _TabsState createState() => _TabsState(this.index);
  11. }
  12.  
  13. class _TabsState extends State<Tabs> {
  14.  
  15. int _currentIndex;
  16. _TabsState(index){
  17. this._currentIndex=index;
  18. }
  19.  
  20. List _pageList=[
  21. HomePage(),
  22. CategoryPage(),
  23. SettingPage(),
  24. ];
  25. @override
  26. Widget build(BuildContext context) {
  27. return Scaffold(
  28. appBar: AppBar(
  29. title: Text("Flutter App"),
  30. ),
  31. body: this._pageList[this._currentIndex],
  32. bottomNavigationBar: BottomNavigationBar(
  33. currentIndex: this._currentIndex, //配置对应的索引值选中
  34. onTap: (int index){
  35. setState(() { //改变状态
  36. this._currentIndex=index;
  37. });
  38. },
  39. iconSize:36.0, //icon的大小
  40. fixedColor:Colors.red, //选中的颜色
  41. type:BottomNavigationBarType.fixed, //配置底部tabs可以有多个按钮
  42. items: [
  43. BottomNavigationBarItem(
  44. icon: Icon(Icons.home),
  45. title: Text("首页")
  46. ),
  47. BottomNavigationBarItem(
  48. icon: Icon(Icons.category),
  49. title: Text("分类")
  50. ),
  51.  
  52. BottomNavigationBarItem(
  53. icon: Icon(Icons.settings),
  54. title: Text("设置")
  55. )
  56. ],
  57. ),
  58.  
  59. drawer: Drawer(
  60. child: Column(
  61. children: <Widget>[
  62.  
  63. Row(
  64. children: <Widget>[
  65. Expanded(
  66. child: UserAccountsDrawerHeader(
  67. accountName:Text("张三"),
  68. accountEmail: Text("8888@163.com"),
  69. currentAccountPicture: CircleAvatar(
  70. backgroundImage: NetworkImage("http://pic23.nipic.com/20120830/9686992_180336646144_2.jpg"),
  71. ),
  72. decoration:BoxDecoration(
  73. image: DecorationImage(
  74. image: NetworkImage("http://pic31.nipic.com/20130801/11604791_100539834000_2.jpg"),
  75. fit:BoxFit.cover,
  76. )
  77.  
  78. ),
  79. otherAccountsPictures: <Widget>[
  80. Image.network("http://k.zol-img.com.cn/dcbbs/22000/a21999018_01000.jpg"),
  81. Image.network("http://pic38.nipic.com/20140211/17882171_143443301183_2.jpg"),
  82. ],
  83. )
  84. )
  85. ],
  86. ),
  87. ListTile(
  88. leading: CircleAvatar(
  89. child: Icon(Icons.home)
  90. ),
  91. title: Text("我的空间"),
  92.  
  93. ),
  94. Divider(),
  95. ListTile(
  96. leading: CircleAvatar(
  97. child: Icon(Icons.people)
  98. ),
  99. title: Text("用户中心"),
  100. onTap: (){
  101. Navigator.of(context).pop(); //隐藏侧边栏
  102. Navigator.pushNamed(context, '/user');
  103. },
  104. ),
  105. Divider(),
  106. ListTile(
  107. leading: CircleAvatar(
  108. child: Icon(Icons.settings)
  109. ),
  110. title: Text("设置中心"),
  111. ),
  112. Divider(),
  113. ],
  114. ),
  115.  
  116. ),
  117. endDrawer: Drawer(
  118. child: Text('右侧侧边栏'),
  119. ),
  120. );
  121. }
  122. }

Flutter Drawer 侧边栏、以及侧边栏内 容布局的更多相关文章

  1. Drawer 侧边栏、以及侧边栏内 容布局

    一.Flutter Drawer 侧边栏 在 Scaffold 组件里面传入 drawer 参数可以定义左侧边栏,传入 endDrawer 可以定义右侧边栏.侧边栏默认是隐藏的,我们可以通过手指滑动显 ...

  2. Flutter——Drawer、DrawerHeader、UserAccountsDrawerHeader组件(侧边栏组件)

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

  3. Revit API创建一个拷贝房间内对象布局命令

    本课程演示创建一个拷贝房间内对象布局命令,完整演示步骤和代码.这个命令把选中房间内的对象复制到其它选中的一个或多个房间中,而且保持与源房间一致的相对位置.通过本讲座使听众知道创建一个二次开发程序很简单 ...

  4. ecshop 前台个人中心修改侧边栏 和 侧边栏显示不全 或 导航现实不全

    怎么给个人中心侧边栏加项或者减项 在模板文件default/user_menu.lbi 文件里添加或者修改,一般看到页面都会知道怎么加,怎么删,这里就不啰嗦了 添加一个栏目以后,这个地址跳的页面怎么写 ...

  5. Flutter -------- Drawer侧滑

    侧滑菜单在安卓App里面非常常见 抽屉通常与Scaffold.drawer属性一起使用.抽屉的子项通常是ListView,其第一个子项是DrawerHeader ,它显示有关当前用户的状态信息.其余的 ...

  6. flutter drawer 自定义图标 icon 手动打开drawer

    方法1:GlobalKey import "package:flutter/material.dart"; class Test extends StatefulWidget { ...

  7. Bootstrap内栅格布局,表格,按钮,图片的个人总结

    栅格布局: container,固定宽度的容器. container-fluid,百分百宽度的容器. 使用行(row)在水平方向上创建一组列(colmun). 每一行中最多能够包含12列,超出的列则另 ...

  8. Flutter利用GridView实现网格的商品布局

    GridView.count 生成的是静态网格 效果: 代码: import 'package:flutter/material.dart'; void main() { runApp(MyApp() ...

  9. 37 Flutter仿京东商城项目 结算页面布局

    加群452892873 下载对应34课文件,运行方法,建好项目,直接替换lib目录 CheckOut.dart import 'package:flutter/material.dart'; impo ...

随机推荐

  1. python蟒蛇绘制的代码以及目前还不知道怎么用的RGB颜色对照表

    #PythonDraw.py import turtle#引入海龟库 turtle.setup(650,350,200,200)#确定窗口大小,长650,高350,确定窗口位置,距离电脑左上角200, ...

  2. Java精通并发-自旋对于synchronized关键字的底层意义与价值分析以及互斥锁属性详解与Monitor对象特性解说【纯理论】

    自旋对于synchronized关键字的底层意义与价值分析: 对于synchronized关键字的底层意义和价值分析,下面用纯理论的方式来对它进行阐述,自旋这个概念就会应运而生,还是很重要的,下面阐述 ...

  3. Kotlin星投影与泛型约束详解

    星投影(star projection): 继续来学习Kotlin泛型相关的东东,星投影(star projection),这是个啥东东呢?下面先来说一下概念: 1.对于Star<out T&g ...

  4. 【Vue-01】基础Vue语法+JS复习

    Vue学习疑问及总结_SZS 0.vue router 带参数跳转 发送:this.$router.push({path:'/news',query:{id:row.id}}) 接收:var id=t ...

  5. 2019-2020-1 20199301《Linux内核原理与分析》第四周作业

    Week4 MenuOS的构造 一.上周复习 计算机的三大法宝: 存储程序计算机: 函数调用堆栈: 中断. 操作系统的两把宝剑: 中断上下文-保存现场和恢复现场 进程上下文 二.Linux内核源代码简 ...

  6. 评估预测函数(2)---对hypothesis进行评估

    当有多个features时,无法通过图像来评估hypothesis 当我们的hypothesis只有一个features时,可以通过观察它的图像来看它是否overfitting,但是如果我们有多个fe ...

  7. python同时取每个列表的第一个元素

    在实际爬虫开发中, 经常用到列表保存数据, 在使用这些数据的时候,需要要取每个列表里的第一个元素进行拼接. 就需要用到python的内置方法:“zip()" # 现在有3个列表:li_1, ...

  8. 09 webpack的介绍

    webpack干嘛的?:  模块打包机,分析目录结构,找到js模块(包括浏览器不能直接识别的代码 typscript sass...),打包成合适的格式供浏览器访问 webpack是一款模块加载器兼打 ...

  9. Tensorflow细节-P190-输入文件队列

    以下代码要学会几个地方 1.filename = ('data.tfrecords-%.5d-of-%.5d' % (i, num_shards)) 这个东西就是要会data.tfrecords-%. ...

  10. VS - Microsoft.Practices.EnterpriseLibrary.Logging

    string fileName = AppDomain.CurrentDomain.BaseDirectory + "\\log.txt";File.AppendAllText(f ...