Flutter 控件之 MaterialApp

MaterialApp 代表使用纸墨设计(Material Design)风格的应用。里面包含了纸墨设计风格应用所需要的基本控件。

MaterialApp 主要属性如下:

title : 在任务管理窗口中所显示的应用名字

theme : 应用各种 UI 所使用的主题颜色

color : 应用的主要颜色值(primary color),也就是安卓任务管理窗口中所显示的应用颜色

home : 应用默认所显示的界面 Widget

routes : 应用的顶级导航表格,这个是多页面应用用来控制页面跳转的,类似于网页的网址

initialRoute :第一个显示的路由名字,默认值为 Window.defaultRouteName

onGenerateRoute : 生成路由的回调函数,当导航的命名路由的时候,会使用这个来生成界面

onLocaleChanged : 当系统修改语言的时候,会触发å这个回调

navigatorObservers : 应用 Navigator 的监听器

debugShowMaterialGrid : 是否显示 纸墨设计 基础布局网格,用来调试 UI 的工具

showPerformanceOverlay : 显示性能标签,https://flutter.io/debugging/#performanceoverlay

checkerboardRasterCacheImages 、showSemanticsDebugger、debugShowCheckedModeBanner 各种调试开关

下面将介绍重要的几个属性。

title

这个和启动图标名字是不一样的,和当前 Activity 的名字也是不一样的。 这个 Title 是用来定义任务管理窗口界面所看到应用名字的。在原生 Android 系统中点击圆圈 Home 按钮右边的方块按钮就会打开多任务切换窗口。

theme

定义应用所使用的主题颜色,在纸墨设计中定义了 primaryColor、accentColor、hintColor 等颜色值。可以通过这个来指定一个 ThemeData 定义应用中每个控件的颜色。

home

这个是一个 Widget 对象,用来定义当前应用打开的时候,所显示的界面。

color

定义系统中该应用的主要颜色

routes

定义应用中页面跳转规则。 该对象是一个 Map。

当使用 Navigator.pushNamed 来路由的时候,会在 routes 查找路由名字,然后使用 对应的 WidgetBuilder 来构造一个带有页面切换动画的 MaterialPageRoute。如果应用只有一个界面,则不用设置这个属性,使用 home 设置这个界面即可。

如果 home 不为 null,当 routes 中包含 Navigator.defaultRouteName('/') 的时候会出错,两个都是 home 冲突了。

如果所查找的路由在 routes 中不存在,则会通过 onGenerateRoute 来查找。

initialRoute

指定默认显示的路由名字,默认值为 Window.defaultRouteName

onGenerateRoute

路由回调函数

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • MaterialApp 代表使用纸墨设计(Material Design)风格的应用。里面包含了纸墨设计风格应用所...
    CQ_TYL阅读 5,648评论 0 5
  • 前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人...
    珍此良辰阅读 12,054评论 33 15
  • [转载自](http://www.cnblogs.com/SamWeb/p/6610733.html) 路由,其实...
    可爸阅读 5,489评论 1 0
  • 本文是基于最新的react-navigation^2.9.1来书写的。 要感谢挂着铃铛的兔看到一篇不错的介绍,这里...
    HT_Jonson阅读 4,388评论 0 52
  • 秋,定是个女子, 定是个爱哭的女子。 她一哭就是三两天, 人们的心情也莫名地忧伤起来。 你瞧,那绵绵的秋雨, 就是...
    书香岁月静好阅读 1,778评论 0 2

友情链接更多精彩内容