flutter MaterialApp介绍
MaterialApp 是 Flutter 中常用的一个 widget,它是构建基于 Material Design 风格应用的根组件,主要负责各种全局状态的管理以及定义应用程序的主题样式等。
void main() {
runApp(MaterialApp(
title: "flutterAPP___test",
theme: ThemeData(
primarySwatch: Colors.yellow,
),
// showPerformanceOverlay: true, //性能显示
// debugShowCheckedModeBanner: false, //去除bug图标
// debugShowMaterialGrid: true, //网格
// checkerboardOffscreenLayers: true,//检查不必要的setlayer
// showSemanticsDebugger: true, //元素位置
home: Scaffold(
// appBar: AppBar(title: const Text("这是导航栏", textDirection: TextDirection.rtl)),
body: MyFlutter1())));
1. home
属性类型:Widget
默认值:null
home 属性指定应用程序的主屏幕,是一个 Widget 对象,通常是一个页面的根组件。当应用程序启动时,会自动显示在屏幕上。例如:home: HomePage()
2. title
属性类型:String
默认值:''
title 属性指定应用程序的标题,会在应用程序的顶部和任务管理器的标签上显示。例如:title: 'My App'
3. theme
属性类型:ThemeData
默认值:ThemeData.light();
ThemeData(
// 设置整体亮度模式为明亮
brightness: Brightness.light,
// 设置应用程序的主要颜色
primaryColor: Colors.blue,
// 设置主要颜色的亮度模式为暗色
primaryColorBrightness: Brightness.dark,
// 设置主要颜色的浅色版本
primaryColorLight: Colors.lightBlue,
// 设置主要颜色的暗色版本
primaryColorDark: Colors.darkBlue,
// 设置强调颜色
accentColor: Colors.yellow,
// 设置强调颜色的亮度模式为暗色
accentColorBrightness: Brightness.dark,
// 设置脚手架的背景颜色
scaffoldBackgroundColor: Colors.white,
// 自定义按钮样式
buttonTheme: ButtonThemeData(
// 设置按钮的颜色
buttonColor: Colors.blue,
// 设置按钮的形状
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0),
),
),
4. routes
属性类型:Map<String, WidgetBuilder>
默认值:null
routes 属性定义应用程序的路由映射表,即定义不同路径对应的页面组件。这样可以通过路由名称导航到不同的页面。
routes: {
'/home': (context) => HomePage(),
'/detail': (context) => DetailPage(),
},
5. initialRoute
属性类型:String
默认值:null
initialRoute 属性定义应用程序启动后显示的初始路由。例如:initialRoute: '/home'
6. onGenerateRoute
属性类型:(RouteSettings settings) -> Route<dynamic>)
默认值:null
onGenerateRoute 属性在使用命名路由导航到一个未定义的路由时会被调用,可以通过该方法动态生成对应的页面。
onGenerateRoute: (settings) {
if (settings.name == '/profile') {
return MaterialPageRoute(builder: (context) => ProfilePage());
}
return null;
},
7. onUnknownRoute
属性类型:(RouteSettings settings) -> Route<dynamic>)
默认值:null
onUnknownRoute 属性在无法找到任何路由时会被调用,可以在这里显示一个错误页面或其他处理逻辑。例如:
onUnknownRoute: (settings) {
return MaterialPageRoute(builder: (context) => ErrorPage());
},
8. builder
属性类型:(BuildContext context, Widget child) -> Widget
默认值:null
builder 属性在构建 MaterialApp 时可以使用该方法,可以在构建 MaterialApp 之前执行一些全局初始化的操作,返回一个 Widget 作为最终的根组件。例如:
builder: (context, child) {
// 进行一些全局初始化操作
return child;
},
flutter MaterialApp介绍的更多相关文章
- Flutter路由跳转及参数传递
本文要介绍的知识点 用路由推出一个新页面 打开新页面时,传入参数 参数的回传 路由 做Android/iOS原生开发的时候,要打开一个新的页面,你得知道你的目标页面对象,然后初始化一个Intent或者 ...
- Flutter的使用教学笔记
QQ交流群 Flutter 程序开发群:766307130 教程 官方实战 使用Flutter 构建精美的页面 云在千峰 博主一直是从事 Android 开发的,所以主要从 Android 技术角度来 ...
- 【Flutter学习】之动画实现原理浅析(三)
一,概述 Flutter动画库的核心类是Animation对象,它生成指导动画的值,Animation对象指导动画的当前状态(例如,是开始.停止还是向前或者向后移动),但它不知道屏幕上显示的内容.动画 ...
- Google 以 Flutter 作为原生突破口,移动端即将统一了
Android 的前生今世 Android 系统 Android系统作为全球第一大系统,基于 Java 开发的移动端有着诸多的性能优势. 2018年前 H5 的性能瓶颈和 RN 的停更 导致业界对跨平 ...
- flutter初探
这两天看了下flutter,感觉这两年可能会爆发,所以尝试在mac和win10上面跑了下hello world... 移动技术简介 原生开发 跨平台技术简介 H5+原生(Cordova.Ionic.微 ...
- Flutter 1.0 正式版: Google 的便携 UI 工具包
简评:所以 React-Native 和 Flutter 该怎么选? 在 10 个月前的 MWC 上,谷歌发布了 Flutter 的 Beta 版本,给跨平台应用开发带来了一种全新的选择,昨天谷歌正式 ...
- 学习Flutter应用开发有用的代码/库/专有技术列表
当我开始使用Flutter开发该应用程序时,我开始担心:“最好的书写方式是什么?”以及“放置它的效果如何?”在这种情况下,您将需要学习和参考GitHub发布的代码和应用程序. 因此,我收集了似乎对 ...
- 干货 | 京东技术中台的Flutter实践之路
在 2019 年,Flutter 推出了多个正式版本,支持的终端越来越多,使用的项目也越来越多.Flutter 正在经历从小范围尝鲜到大面积应用的过程,越来越多的研发团队加入到 Flutter 的学习 ...
- 可能对Flutter应用程序开发有用的代码/库/专有技术列表
当我开始使用Flutter实施该应用程序时,我开始担心“如何最好地编写?”以及“如何使其更好地放置?”. 在这种情况下,您将需要参考GitHub上发布的代码和应用程序. 因此,我收集了似乎对Flu ...
- 移动应用开发:Flutter
目录 前言 Flutter 介绍 移动应用开发:选择对比 原生开发 H5 技术 React Native Flutter 总结 参考 前言 "镜子镜子 告诉我,世界上最好的语言是什么&quo ...
随机推荐
- linux常见命令(四)
用于查看日期和时间的相关命令 cal date hwclock cal:显示日历信息 命令语音:cal [选项] [[[日]月]年] 选项 选项含义 -j 显示出给定月中的每一天是一年总的第几天(从1 ...
- 快速展示原型之Minimal API开发
Minimal API官网地址: https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/minimal-apis/security?vi ...
- Go 函数的健壮性、panic异常处理、defer 机制
Go 函数的健壮性.panic异常处理.defer 机制 目录 Go 函数的健壮性.panic异常处理.defer 机制 一.函数健壮性的"三不要"原则 1.1 原则一:不要相信任 ...
- NFT(数字藏品)热度没了?这玩意是机会还是泡沫?
感谢你阅读本文! 大家好,今天分享一下NFT(数字藏品)这个领域,虽然今天的NFT已经没有之前那么火热,不过市场上依旧还是有很多平台存在,有人离开,也有人不断进来,所以很有必要再分析一番. 需要注意的 ...
- XX-net安装
1.下载https://github.com/XX-net/XX-Net 2. 3. 4.运行google浏览器 5.找到安装XX-net的位置,点击即可访问google ps:校园网用户可以直接使用 ...
- DocTemplateTool - 可根据模板生成word或pdf文件的工具
你是否经常遇到这样的场景:产品运营有着大量的报告需求,或者给客户领导展现每周的运营报告?这些文档类的任务可以交给运营同事,他们负责文档排版和样式,你作为开发人员你只需要提供数据源,和一个映射表,告诉制 ...
- 【re】[NISACTF 2022]string --linux下的随机数
附件下载,查壳 发现是ELF程序,64位,ida打开分析 flag函数点进去 前面一堆代码其实都不重要,直接看主要代码: puts("The length of flag is 13&qu ...
- kirin的博客
本站内容全部为作者学习期间和工作期间整理的笔记,除部分文章转载外,原创文章内容不存在侵权!但部分图片来源于网络,如有侵权可联系作者删除! WX:kirin_zhang0124 学无止境 你是谁,只有你 ...
- Acwing4244牛的比赛
Acwing4244.牛的比赛 题目部分 N 头奶牛,编号 1∼N,一起参加比赛. 奶牛的战斗力两两不同. 这些奶牛之间已经进行了 M轮两两对决. 在对决中,战斗力高的奶牛一定会战胜战斗力低的奶牛. ...
- 大数据开发要学什么java还是python?
在大数据开发领域,Java和Python都是备受青睐的编程语言.它们分别具有各自独特的特点和优势,在大数据处理方面也有不同的应用场景. 以下是对Java和Python在大数据开发中的应用.优势以及学习 ...