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介绍的更多相关文章

  1. Flutter路由跳转及参数传递

    本文要介绍的知识点 用路由推出一个新页面 打开新页面时,传入参数 参数的回传 路由 做Android/iOS原生开发的时候,要打开一个新的页面,你得知道你的目标页面对象,然后初始化一个Intent或者 ...

  2. Flutter的使用教学笔记

    QQ交流群 Flutter 程序开发群:766307130 教程 官方实战 使用Flutter 构建精美的页面 云在千峰 博主一直是从事 Android 开发的,所以主要从 Android 技术角度来 ...

  3. 【Flutter学习】之动画实现原理浅析(三)

    一,概述 Flutter动画库的核心类是Animation对象,它生成指导动画的值,Animation对象指导动画的当前状态(例如,是开始.停止还是向前或者向后移动),但它不知道屏幕上显示的内容.动画 ...

  4. Google 以 Flutter 作为原生突破口,移动端即将统一了

    Android 的前生今世 Android 系统 Android系统作为全球第一大系统,基于 Java 开发的移动端有着诸多的性能优势. 2018年前 H5 的性能瓶颈和 RN 的停更 导致业界对跨平 ...

  5. flutter初探

    这两天看了下flutter,感觉这两年可能会爆发,所以尝试在mac和win10上面跑了下hello world... 移动技术简介 原生开发 跨平台技术简介 H5+原生(Cordova.Ionic.微 ...

  6. Flutter 1.0 正式版: Google 的便携 UI 工具包

    简评:所以 React-Native 和 Flutter 该怎么选? 在 10 个月前的 MWC 上,谷歌发布了 Flutter 的 Beta 版本,给跨平台应用开发带来了一种全新的选择,昨天谷歌正式 ...

  7. 学习Flutter应用开发有用的代码/库/专有技术列表

    当我开始使用Flutter开发该应用程序时,我开始担心:“最好的书写方式是什么?”以及“放置它的效果如何?”在这种情况下,您将需要学习和参考GitHub发布的代码和应用程​​序. 因此,我收集了似乎对 ...

  8. 干货 | 京东技术中台的Flutter实践之路

    在 2019 年,Flutter 推出了多个正式版本,支持的终端越来越多,使用的项目也越来越多.Flutter 正在经历从小范围尝鲜到大面积应用的过程,越来越多的研发团队加入到 Flutter 的学习 ...

  9. 可能对Flutter应用程序开发有用的代码/库/专有技术列表

    当我开始使用Flutter实施该应用程序时,我开始担心“如何最好地编写?”以及“如何使其更好地放置?”. 在这种情况下,您将需要参考GitHub上发布的代码和应用程​​序. 因此,我收集了似乎对Flu ...

  10. 移动应用开发:Flutter

    目录 前言 Flutter 介绍 移动应用开发:选择对比 原生开发 H5 技术 React Native Flutter 总结 参考 前言 "镜子镜子 告诉我,世界上最好的语言是什么&quo ...

随机推荐

  1. Informix 4gl错误代码信息和更正

    (一)Informix信息和更正 出版日期:6 1996 年 年 1 11 月 0 成功. 操作成功.当 SQL 语句成功地执行时,数据库服务器把这个 SQLCODE 值返回给应用程序. 100 没有 ...

  2. DICOM PS3.7 2021a - Message Exchange

    PS3.7 DICOM PS3.7 2021a - Message Exchange DICOM Standards Committee Copyright 2021 NEMA A DICOM pub ...

  3. aspnetcore微服务之间grpc通信,无proto文件

    aspnetcore微服务之间通信grpc,一般服务对外接口用restful架构,HTTP请求,服务之间的通信grpc多走内网. 以前写过一篇grpc和web前端之间的通讯,代码如下: exercis ...

  4. 简单实现.NET Hook与事件模拟

    最近玩<星露谷物语>上瘾,本来是看着个休闲游戏,现在玩成修仙游戏了,上百个小时浑身是肝,中午午休习惯都强行给改了. 虽然挺有意思,但是太肝了,入坑前请谨慎.补充一下,这个游戏应该是基于 X ...

  5. 如何去掉桌面快捷方式左下角的小箭头(Win11)

    在对系统重命名之后,在快捷方式的左下角莫名的出现了小图标 如果想要去掉这个小图标 (1)首先在桌面上创建一个txt文件 (2)打开后输入指令 reg add "HKEY_LOCAL_MACH ...

  6. 聊聊RNN与seq2seq

    seq2seq模型也称为Encoder-Decoder模型.顾名思义,这个模型有两个模块--Encoder(编码器)和Decoder(解码器).编码器对输入数据进行编码,解码器对被编码的数据进行解码. ...

  7. IPv4:根据CIDR显示地址范围

    最近遇到一个很有意思的点,于是就记录下来. CIDR一般是由IP地址和子网掩码组成,即 IP地址/子网掩码 格式. 子网掩码表示前面地址中的前多少位,为网络位,后面部分代表主机部分.例如:192.16 ...

  8. C#.NET 国密SM4 CBC 对称加解密 与JAVA互通 ver:20231103

    C#.NET 国密SM4 CBC 对称加解密 与JAVA互通 ver:20231103 .NET 环境:.NET6 控制台程序(.net core). JAVA 环境:JAVA8,带maven 的JA ...

  9. 谈谈SSO单点登录的设计实现

    谈谈SSO单点登录的设计实现 本篇将会讲讲单点登录的具体实现. 实现思路 其实单点登录在我们生活中很常见,比如学校的网站,有很多个系统,迎新系统,教务系统,网课系统.我们往往只需要登录一次就能在各个系 ...

  10. 🔥🔥Java开发者的Python快速实战指南:探索向量数据库之文本搜索

    前言 如果说Python是跟随我的步伐学习的话,我觉得我在日常开发方面已经没有太大的问题了.然而,由于我没有Python开发经验,我思考着应该写些什么内容.我回想起学习Java时的学习路线,直接操作数 ...