MaterialApp 参数对照表
字段 | 类型 |
---|---|
navigatorKey(导航主键) | GlobalKey<NavigatorState> |
home(起始页) | Widget |
routes(路由列表) | Map<String, WidgetBuilder> |
initialRoute(初始路由名称) | String |
onGenerateRoute(生成路由) | RouteFactory |
onUnknownRoute(未知路由) | RouteFactory |
navigatorObservers(导航观察器) | List<NavigatorObserver> |
builder(构造器) | TransitionBuilder |
title(应用标题) | String |
onGenerateTitle(生成应用标题) | GenerateAppTitle |
color(颜色) | Color |
theme(主题配置) | ThemeData |
locale(地点) | Locale |
localizationsDelegates(本地化委托代理) | Iterable<LocalizationsDelegate<dynamic>> |
localeResolutionCallback(区域分辨回调) | LocaleResolutionCallback |
supportedLocales(应用支持区域) | Iterable<Locale> |
debugShowMaterialGrid(调试模式是否显示 Material 网格) | bool |
showPerformanceOverlay(显示性能监控叠层) | bool |
checkerboardRasterCacheImages(棋盘格光栅缓存图像) | bool |
checkerboardOffscreenLayers(棋盘格层) | bool |
showSemanticsDebugger(显示语义调试器) | bool |
debugShowCheckedModeBanner(调试模式是否显示 DEBUG 横幅) | bool |
navigatorKey
navigatorKey
定义的是当前 APP 实例的 GlobalKey
。GlobalKey
能够
跨 Widget 访问状态。
home
定义 APP 的起始页面,通常为一个页面实例。如:
// 指定起始页为闪屏页面
home: new SplashPage(),
routes
注意:
routes
中定义的路由无法传递参数!!!如果希望路由之间传递参数,需要使常规的路由切换方法。
routes
通常是一个 Map<String, WidgetBuilder>
类型的列表,如:
routes: {
"/HomePage": (context) => HomePage(),
"/AboutPage": (context) => AboutPage(),
},
上面的 (context) => HomePage()` 是简写语法,完整语法是:
"/HomePage": (WidgetBuilder context) {
return new HomePage();
},
定义好的路由,可以使用 Navigator
访问,如:
Navigator.pushNamed(context, "/AboutPage");
// 或者
Navigator.of(context).pushNamed("/AboutPage");
initialRoute
初始路由名称,通常是 routes
中定义的一个项,会覆盖 home
的定义。 如:
routes: {
"/HomePage": (context) => HomePage(),
"/AboutPage": (context) => AboutPage(),
},
initialRoute: "/HomePage"
debugShowMaterialGrid
调试模式是否显示 Material 网格
debugShowMaterialGrid = trueshowPerformanceOverlay
显示性能监控叠层
showPerformanceOverlay = trueshowSemanticsDebugger
显示语义调试器,会把组件外观显示为外框模式;
showSemanticsDebugger = truecheckerboardRasterCacheImages 和 checkerboardOffscreenLayers
两个属性效果差不多,开后,某些组件会被棋盘格层叠高亮。
checkerboardRasterCacheImagesdebugShowCheckedModeBanner
调试模式是否显示 DEBUG 横幅
true | false |
网友评论