title:任务管理窗口中显示的名称
theme:应用各种UI所使用的主题颜色
color:应用的主要颜色值(primary color),也就是安卓任务管理窗口中所显示的应用颜色
home:应用默认所显示的界面 Widget
routes:应用的顶级导航表格,这个是多页面应用用来控制页面跳转的,类似于网页的网址
initialRoute:第一个显示的路由名字,默认值为 Window.defaultRouteName
onGenerateRoute:生成路由的回调函数,当导航的命名路由的时候,会使用这个来生成界面
onLocaleChanged:当系统修改语言时,会触发这个回调函数
navigatorObservers:应用navigator的监听器
debugShowMaterialGrid:是否显示 Material design 基础布局网格,用来调试UI的工具
showPerformanceOverlay: 显示性能标签
checkerboardRasterCacheImages、showSemanticsDebugger、debugShowCheckedModeBanner 各种调试开关
下面是路由的用法,注意home和initialRoute不能同时存在,二者都表示默认显示的页面,会冲突。而如果routes中,包含路由'/'时,也不能和home同时存在,因为'/'也表示首页,home也表示首页,也会冲突
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
const MyApp({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'MarerialApp示例',
theme: ThemeData(primaryColor: Colors.red),
//默认显示的路由,如果不是在routes中定义的首页,则左上角会显示返回按钮
initialRoute: '/second',
routes: <String, WidgetBuilder>{
// '/' 表示首页
'/': (BuildContext context) => FirstScreen(),
'/second': (BuildContext context) => SecondScreen(),
},
//home和上面的 initialRoute不能同时存在,home表示首页,而routes中定义的 '/'也是首页,会和home冲突。
// home: FirstScreen(),
);
}
}
class FirstScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('FirstScreen'),
),
body: Center(
child: RaisedButton(
onPressed: () {},
child: Text('First Screen'),
),
),
);
}
}
class SecondScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Second Screen'),
),
body: Center(
child: RaisedButton(
onPressed: () {},
child: Text('Second Screen'),
),
),
);
}
}
