Scaffold

是一个实现基本的material design 的布局结构

appBar 显示在界面顶部的一个 AppBar
body 当前界面所显示的主要内容 Widget
floatingActionButton Material 设计中所定义的 FAB,界面的主要功能按钮
persistentFooterButtons 固定在下方显示的按钮,比如对话框下方的确定、取消按钮
drawer 抽屉菜单控件
backgroundColor 内容的背景颜色,默认使用的是 ThemeData.scaffoldBackgroundColor 的值
bottomNavigationBar 显示在页面底部的导航栏
resizeToAvoidBottomPadding 控制界面内容 body 是否重新布局来避免底部被覆盖了,比如当键盘显示的时候,重新布局避免被键盘盖住内容。默认值为 true。

1 AppBar

class MyApp extends StatelessWidget {// This widget is the root of your application.@overrideWidget build(BuildContext context) {return MaterialApp(theme: ThemeData(primarySwatch: Colors.blue,),home: Scaffold(appBar: myAppBar(),body: Text("data"),),);}
}// 创建一个AppBar
AppBar myAppBar(){return new AppBar(//标题title: new Text("自定义标题"),// 标题居中centerTitle: true,//按钮actions: <Widget>[new IconButton(icon: new Icon(Icons.favorite),onPressed: (){print("点击了小心心阿牛");},// 长按进行提示文字tooltip: '这是干什么操作的',),new IconButton(icon: new Icon(Icons.sentiment_dissatisfied),onPressed: (){print("第二个按钮");},// 长按进行提示文字tooltip: '这是干什么操作的',)],);
}

2 Drawer 抽屉

Drawer myDrawer(BuildContext context){return new Drawer(child: ListView(padding: EdgeInsets.all(5),children: <Widget>[// 抽屉头部DrawerHeader(decoration: BoxDecoration(color: Colors.lightBlueAccent,),child: Center(child: SizedBox(width: 80,height: 80,child: CircleAvatar(child: Icon(Icons.face),),),),),ListTile(title: Text("第一行"),leading: new CircleAvatar(child: new Icon(Icons.face),),onTap: (){Navigator.pop(context);},),ListTile(title: Text("第二行"),leading: new CircleAvatar(child: new Icon(Icons.fastfood),),onTap: (){Navigator.pop(context);},),],),);}

3 悬浮的按钮

  Widget build(BuildContext context) {return MaterialApp(theme: ThemeData(primarySwatch: Colors.blue,),home: Scaffold(appBar: myAppBar(),body: Text("data"),drawer: myDrawer(context),// 悬浮的按钮 在右下角floatingActionButton: new FloatingActionButton(tooltip: 'Add', // used by assistive technologieschild: new Icon(Icons.add),onPressed: null,),// 悬浮按钮的位置 中间 右边 左边,默认是右边floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,),);}
}

4 底部的导航栏 bottomNavigationBar

class _BottomBarState extends State{int _currentIndex = 1;// 点击项目的回调void _onItemTapped(int index) {if(mounted) {setState(() {_currentIndex = index;});}}@overrideWidget build(BuildContext context) {return BottomNavigationBar(// BottomNavigationBarType 中定义的类型,有 fixed 和 shifting 两种类型type: BottomNavigationBarType.fixed, // BottomNavigationBarItem 中 icon 的大小iconSize: 24.0, // 当前所高亮的按钮indexcurrentIndex: _currentIndex, // 点击里面的按钮的回调函数,参数为当前点击的按钮 indexonTap: _onItemTapped, // 选中时候fixedColor:  Colors.blue, items: <BottomNavigationBarItem> [BottomNavigationBarItem(title:  Text("商场"), icon:  Icon(Icons.local_grocery_store)),BottomNavigationBarItem(title:  Text("航班"), icon:  Icon(Icons.local_airport)),BottomNavigationBarItem(title:  Text("旅行"), icon:  Icon(Icons.card_travel)),BottomNavigationBarItem(title:  Text("我的"), icon:  Icon(Icons.apps)),],);}
}

15-flutter Scaffold详解相关推荐

  1. Flutter Widget详解

    Flutter Widget详解 Widget是Flutter应用程序用户界面的基本构建块.每个Widget都是用户界面一部分的不可变声明. 与其他将视图.控制器.布局和其他属性分离的框架不同,Flu ...

  2. 【5年Android从零复盘系列之二十】Android自定义View(15):Matrix详解(图文)【转载】

    [转载]本文转载自麻花儿wt 的文章<android matrix 最全方法详解与进阶(完整篇)> [5年Android从零复盘系列之二十]Android自定义View(15):Matri ...

  3. 学习笔记-Flutter 动画详解(一)

    Flutter 动画详解(一) 本文主要介绍了动画的原理相关概念,对其他平台的动画做了一个简要的梳理,并简要的介绍了Flutter动画的一些知识. 1. 动画介绍 动画对于App来说,非常的重要.很多 ...

  4. Flutter Text详解

    示例 API Text,很常用的一个Widget:用于显示简单样式文本,它包含一些控制文本显示样式的一些属性 text构造方法源码: /// If the [style] argument is nu ...

  5. qt及qt quick开发实战精解_Qt5实战001:Qt 5.15下载安装详解

    什么是QT Qt是一个款跨平台的C++图形用户界面应用程序开发框架,支持包括不限于Windows.Linux.Mac OS X.Android.iOS.WinCE.Unix等平台.Qt 可以绘制漂亮的 ...

  6. Python游戏工具包---Pygame最常用的15个模块详解(附pdf版本)

    ↑ 点击上方 "一行数据" 关注 + 星标 ~ 每周送书,绝不错过 本文不查错,三连送书 最近很多读者想学习使用python来制作游戏,其中最经典的工具包就是Pygame ,如果单 ...

  7. 吃透Chisel语言.15.Chisel模块详解(二)——Chisel模块嵌套和ALU实现

    Chisel模块详解(二)--Chisel模块嵌套和ALU实现 稍微复杂点的硬件设计就需要用嵌套的模块层级来构建了,上一篇文章中实现的计数器其实就是个例子,计数器内部嵌套了一个寄存器.一个Mux和一个 ...

  8. Flutter ListView详解

    ListView详解 ListView常用构造 ListView ListView 默认构建 效果 ListView ListTile ListTile 属性 ListTile 使用 效果 ListV ...

  9. [flutter专题]详解AppBar小部件

    大家好,我是坚果,公众号"坚果前端" AppBar 应用栏是各种应用程序中最常用的组件之一.它可用于容纳搜索字段.以及在页面之间导航的按钮,或者只是页面标题.由于它是一个如此常用的 ...

  10. Scaffold 详解

    一.主要的属性说明 appBar:显示在界面顶部的一个 AppBar body:当前界面所显示的主要内容 floatingActionButton: 在 Material 中定义的一个功能按钮. pe ...

最新文章

  1. 还在用Jenkins?试试Gitlab的CI/CD功能吧,贼带劲!
  2. python 单一进程实例 实现
  3. MySQL第9天:MySQL索引优化分析之join查询
  4. WebDriverAgent安装到iphone真机
  5. nodejs 利用zip-local模块压缩文件夹
  6. 自己的数字选择控件NumberPicker
  7. 《MySQL——锁》
  8. MySQL运维系列 之 如何监控大事务
  9. 知识图谱论文阅读(二十)【WWW2020】Heterogeneous Graph Transformer
  10. python更新包列表出错_解决pycharm无法获取安装包文件列表
  11. 利用C#开发基于snmpsharpnet基础的SNMP开发应用
  12. G-Sensor 8452驱动及相关
  13. 2025年中国信息消费总额将达12万亿元
  14. 医院MR图像的pixel array 数字过大解决方案
  15. MATLAB秦九韶算法
  16. cpu飙高1000,几近崩溃
  17. 概率论与数理统计前两章总结
  18. 达梦数据库SQL查询报错不是 GROUP BY 表达式解决方法
  19. Windows和Mac系统盘瘦身的一些经验
  20. 漏斗分析 - AARRR模型案例分析

热门文章

  1. 【2017-4-26】Winform 公共控件 菜单和工具栏
  2. Atitit.软件兼容性原理与实践 v3 q326.docx
  3. zoj 1204 Additive equations
  4. 报表应用系列——图表JFreeChart: 第 4 章 折线图
  5. 黑马程序员5 多线程
  6. 5招全面扫描网站页面的质量
  7. NDK crash栈信息的错误定位
  8. Java字节码instrument研究
  9. libev源码解析——调度策略
  10. 【FFmpeg】ffmpeg命令详解(三)高级选项