Flutter MaterialApp 和 Scaffold 组件
● MaterialApp
MaterialApp 是一个方便的 widget,它封装了应用程序实现 Material Design 所需要的 一些 widget, 作为顶层 widget 使用; 那什么又是 Material design ? (一种设计语言)
Material Designhttps://www.youtube.com/watch?v=rrT6v5sOwJg
中文名:材料设计语言,是由Google推出的全新的设计语言,谷歌表示,这种设计语言旨在为手机、平板电脑、台式机和“其他平台”提供更一致、更广泛的“外观和感觉”;
Material Design正是通过还原物理世界的规则并对其进行抽象,从而让用户使用软件时更容易理解。从物理世界的纸墨中获得灵感,使用接近物理世界的纸张,来呈现用户界面。所以Material Design最恰当的翻译,应该是“质感设计”(“材料设计”亦可,不过“质感设计”可能更加信达雅)
MaterialApp 常用属性 :
- home (主页)
- title (标题)
- color (颜色)
- theme (主题)
- router (路由)
● Scaffold
Scaffold 是 material design 布局结构的基本实现。此类提供了用于显示 drawer, snackbar 和 底部 sheet api
scaffold 常用属性 :
- appbar 显示界面顶部(导航)的一个 AppBar
- body 当前界面所显示的主要内容 Widget
- drawer 抽屉菜单控件
Scaffold 组件必须在 MaterialApp里面进行调用; 否则报错!No MediaQuery widget found.
也就是 根组件必须是 MaterialApp,Scaffold 需要包裹在 MaterialApp中使用!
import 'package:flutter/material.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {// This widget is the root of your application.@overrideWidget build(BuildContext context) {return MaterialApp(title: 'Flutter Demo',theme: ThemeData(primarySwatch: Colors.blue,),home: Scaffold(appBar: AppBar(title: Text('title'),),body: HomeContent(),),);}
}class HomeContent extends StatelessWidget {@overrideWidget build(BuildContext context) {// TODO: implement buildreturn Container(child: Text("老铁双击 666"),);}
}
Flutter MaterialApp 和 Scaffold 组件相关推荐
- Flutter中的Scaffold组件
概述 在开始说明Scaffold组件之前,先大致讲述一下Material Design风格.Material Design也成为纸墨设计风格,是由Google退出的全新的设计语言,这种设计语言旨在为手 ...
- Flutter MaterialApp和Scaffold
一.MaterialApp 为了继承主题数据,widget需要位于MaterialApp内才能正常显示, 因此我们使用MaterialApp来运行该应用.所以MaterialApp是Flutter ...
- 【Flutter】StatefulWidget 组件 ( 创建 StatefulWidget 组件 | MaterialApp 组件 | Scaffold 组件 )
文章目录 一.StatefulWidget 组件 二.创建 StatefulWidget 组件 三.MaterialApp 组件 四.Scaffold 组件 五. 相关资源 一.StatefulWid ...
- Flutter Scaffold组件详情配制使用
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. 本文章将详细综述Scaffold组件的属性配制 本页面中最终实现的页面效果 1 Scaffold简述 Scaffold 实现了基本的 ...
- Material组件之MaterialApp、Scaffold、AppBar学习笔记
一.MaterialApp flutter的路由方式有两种:新建路由和注册路由 1.1 新建路由 Navigator.push负责将新建的路由添加到Navigator管理的route堆栈的栈顶,Nav ...
- 解决Flutter键盘弹起导致与输入框有间距问题(Flutter键盘弹起Scaffold布局流程)解析
一. 在项目中遇到了个如下问题: 当页面底部有个输入框,点击弹出键盘时:输入框与键盘之间有一段间距 通过排除,最后找到了问题根源所在:原因是使用了这个屏幕适配框架导致的.此框架通过直接修改Flutte ...
- Flutter新手入门常用组件总结,让你了解更多的Flutter组件?
Flutter常用组件 1.MaterialApp 2.Scaffold 3.Container 4.BoxDecoration(装饰器) 5.Row(横向排布) 6.Column(纵向排布) 7.E ...
- Flutter中Stack层叠组件以及与Align、Positioned组件实现定位布局
1. Stack 组件 Stack 表示堆的意思,用此组件修饰的子组件会"堆"在一起. 常见属性: 1. alignment 对齐方式: 2. children 子组件: 代码示 ...
- flutter学习(3)图片组件
flutter学习(3)图片组件 文章目录 flutter学习(3)图片组件 一.远程图片 二.Flutter实现圆角以及实现圆形图片 法一 法二(较简单) 三.本地图片 1.新建目录结构 2.修改p ...
最新文章
- mysql插入数据显示中文乱码
- JQuery 总结(2) jQuery 效果动画
- 1006: 组合的输出(dfs的一种用法)(与排列类似)
- 深度学习《CNN架构续篇 - 学习率衰减》
- 使用Service Installer在.NET Core中配置依赖注入而无需任何代码
- linux /dev/null 中有数据
- 阿里菜鸟JAVA实习生一面面试题
- 在我离开一段时间后锁定计算机,离开电脑一段时间怎么让win10自动锁屏
- PPT自学教程从小白到高手超详细讲解_1
- 注册公司的基本流程 version_1.0
- PID学习笔记:模拟加热系统的PID控制
- 自学c语言从哪开始,C语言从何开始学习
- vue.js 表格表单序号
- 数字人民币将如何改变金融生态?
- 17joys用户管理 添加用户
- 幻影pin_幻影CSS
- undefined reference to `cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::all
- 三款破解PHP加密程序工具软件
- iPhone 相机操作指南 3.0
- Web前端:Bootstrap最强总结 附详细代码 (带常用案例!)