一、主要参数含义
title : 在任务管理窗口中所显示的应用名字
theme : 应用各种 UI 所使用的主题颜色
color : 应用的主要颜色值(primary color),也就是安卓任务管理窗口中所显示的应用颜色
home : 应用默认所显示的界面 Widget
routes : 应用的顶级导航表格,这个是多页面应用用来控制页面跳转的,类似于网页的网址
initialRoute :第一个显示的路由名字,默认值为 Window.defaultRouteName
onGenerateRoute : 生成路由的回调函数,当导航的命名路由的时候,会使用这个来生成界面
onLocaleChanged : 当系统修改语言的时候,会触发å这个回调
navigatorObservers : 应用 Navigator 的监听器
debugShowMaterialGrid : 是否显示 Material design 基础布局网格,用来调试 UI 的工具
showPerformanceOverlay : 显示性能标签
checkerboardRasterCacheImages 、showSemanticsDebugger、debugShowCheckedModeBanner 各种调试开关
二、基本示例:
1、title、color 示例
在任务管理器,就会显示该标题、颜色
2、home 、initialRoute、onGenerateRoute 示例
注意:
MaterialApp的构造方法中的每一个参数都是可以省略的,但是官方还是要求[home] ,[routes][onGenerateRoute]这三个参数至少要填写一个
home 示例
import 'package:flutter/material.dart';
void main() => runApp(MaterialAppDemo());
// 第一个类
class FirstScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("First Bar")),
body: Center(child: Text("First Body"))
);
}
}
// 第二个类
class SecondScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Second Bar")),
body: Center(child: Text("Second Body"))
);
}
}
// 最后一个类
class MaterialAppDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '应用名称',
color: Colors.green,
home: SecondScreen(),
theme: ThemeData(
primaryColor: Colors.redAccent
)
);
}
}
initialRoute、onGenerateRoute 示例
将上面最后一个(主类)代码改为如下
class MaterialAppDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '应用名称',
theme: ThemeData(
primaryColor: Colors.redAccent
),
// 该 initialRoute 默认值为 /,若不指定该值,则须在routes中的某个 key 替换为 '/'
// 例如 'second': (BuildContext context) => SecondScreen() 改为 '/': (BuildContext context) => SecondScreen()
initialRoute: 'second',
routes: <String, WidgetBuilder>{
"third": (BuildContext context) => ThirdScreen(),
'first': (BuildContext context) => FirstScreen(),
'second': (BuildContext context) => SecondScreen()
},
);
}
}
3、debugShowMaterialGrid 示例
将上面最后一个(主类)代码中添加如下一行语句
debugShowMaterialGrid: true
4、showPerformanceOverlay 示例
将上面最后一个(主类)代码中添加如下一行语句
showPerformanceOverlay: true