劉宇肖函
MaterialApp 是我們app開發(fā)中常用的符合MaterialApp Design設計理念的入口Widget,從源碼可以看出該widget的構造方法中有多個參數(shù)酵幕,但是基本上大多數(shù)參數(shù)是可以省略的扰藕。
MaterialApp({
Key key,
this.title = '', // 設備用于為用戶識別應用程序的單行描述
this.home, // 應用程序默認路由的小部件,用來定義當前應用打開的時候,所顯示的界面
this.color, // 在操作系統(tǒng)界面中應用程序使用的主色裙盾。
this.theme, // 應用程序小部件使用的顏色实胸。
this.routes = const <String, WidgetBuilder>{}, // 應用程序的頂級路由表
this.navigatorKey, // 在構建導航器時使用的鍵。
this.initialRoute, // 如果構建了導航器番官,則顯示的第一個路由的名稱
this.onGenerateRoute, // 應用程序導航到指定路由時使用的路由生成器回調
this.onUnknownRoute, // 當 onGenerateRoute 無法生成路由(initialRoute除外)時調用
this.navigatorObservers = const <NavigatorObserver>[], // 為該應用程序創(chuàng)建的導航器的觀察者列表
this.builder, // 用于在導航器上面插入小部件庐完,但在由WidgetsApp小部件創(chuàng)建的其他小部件下面插入小部件,或用于完全替換導航器
this.onGenerateTitle, // 如果非空徘熔,則調用此回調函數(shù)來生成應用程序的標題字符串门躯,否則使用標題。
this.locale, // 此應用程序本地化小部件的初始區(qū)域設置基于此值酷师。
this.localizationsDelegates, // 這個應用程序本地化小部件的委托讶凉。
this.localeListResolutionCallback, // 這個回調負責在應用程序啟動時以及用戶更改設備的區(qū)域設置時選擇應用程序的區(qū)域設置染乌。
this.localeResolutionCallback, //
this.supportedLocales = const <Locale>[Locale('en', 'US')], // 此應用程序已本地化的地區(qū)列表
this.debugShowMaterialGrid = false, // 打開繪制基線網(wǎng)格材質應用程序的網(wǎng)格紙覆蓋
this.showPerformanceOverlay = false, // 打開性能疊加
this.checkerboardRasterCacheImages = false, // 打開柵格緩存圖像的棋盤格
this.checkerboardOffscreenLayers = false, // 打開渲染到屏幕外位圖的圖層的棋盤格
this.showSemanticsDebugger = false, // 打開顯示框架報告的可訪問性信息的覆蓋
this.debugShowCheckedModeBanner = true, // 在選中模式下打開一個小的“DEBUG”橫幅,表示應用程序處于選中模式
})
有Dart基礎知識可以很清楚看出懂讯,MaterialApp的構造方法中的每一個參數(shù)都是可以省略的荷憋,但是官方還是要求[home] ,[routes][onGenerateRoute]這三個參數(shù)至少要填寫一個。如果只給出路由褐望,則必須包含Navigator.defaultRouteName(/)條目勒庄,因為當應用程序以指定不受支持的路由的意圖啟動時,將使用該條目瘫里。
**改變主題顏色
theme: ThemeData(
primaryColor: Colors.red,
),