Flutter入門--MaterialApp

MaterialApp 是我們app開發(fā)中常用的符合MaterialApp Design設(shè)計理念的入口Widget,從源碼可以看出該widget的構(gòu)造方法中有多個參數(shù),但是基本上大多數(shù)參數(shù)是可以省略的。

MaterialApp({
  Key key,
  this.title = '', // 設(shè)備用于為用戶識別應用程序的單行描述
  this.home, // 應用程序默認路由的小部件,用來定義當前應用打開的時候,所顯示的界面
  this.color, // 在操作系統(tǒng)界面中應用程序使用的主色。
  this.theme, // 應用程序小部件使用的顏色喘蟆。
  this.routes = const <String, WidgetBuilder>{}, // 應用程序的頂級路由表
  this.navigatorKey, // 在構(gòu)建導航器時使用的鍵。
  this.initialRoute, // 如果構(gòu)建了導航器鼓鲁,則顯示的第一個路由的名稱
  this.onGenerateRoute, // 應用程序?qū)Ш降街付酚蓵r使用的路由生成器回調(diào)
  this.onUnknownRoute, // 當 onGenerateRoute 無法生成路由(initialRoute除外)時調(diào)用
  this.navigatorObservers = const <NavigatorObserver>[], // 為該應用程序創(chuàng)建的導航器的觀察者列表
  this.builder, // 用于在導航器上面插入小部件蕴轨,但在由WidgetsApp小部件創(chuàng)建的其他小部件下面插入小部件,或用于完全替換導航器
  this.onGenerateTitle, // 如果非空骇吭,則調(diào)用此回調(diào)函數(shù)來生成應用程序的標題字符串橙弱,否則使用標題。
  this.locale, // 此應用程序本地化小部件的初始區(qū)域設(shè)置基于此值燥狰。
  this.localizationsDelegates, // 這個應用程序本地化小部件的委托棘脐。
  this.localeListResolutionCallback, // 這個回調(diào)負責在應用程序啟動時以及用戶更改設(shè)備的區(qū)域設(shè)置時選擇應用程序的區(qū)域設(shè)置。
  this.localeResolutionCallback, // 
  this.supportedLocales = const <Locale>[Locale('en', 'US')], // 此應用程序已本地化的地區(qū)列表 
  this.debugShowMaterialGrid = false, // 打開繪制基線網(wǎng)格材質(zhì)應用程序的網(wǎng)格紙覆蓋
  this.showPerformanceOverlay = false, // 打開性能疊加
  this.checkerboardRasterCacheImages = false, // 打開柵格緩存圖像的棋盤格
  this.checkerboardOffscreenLayers = false, // 打開渲染到屏幕外位圖的圖層的棋盤格
  this.showSemanticsDebugger = false, // 打開顯示框架報告的可訪問性信息的覆蓋
  this.debugShowCheckedModeBanner = true, // 在選中模式下打開一個小的“DEBUG”橫幅龙致,表示應用程序處于選中模式
}) 

有Dart基礎(chǔ)知識可以很清楚看出蛀缝,MaterialApp的構(gòu)造方法中的每一個參數(shù)都是可以省略的,但是官方還是要求[home] ,[routes][onGenerateRoute]這三個參數(shù)至少要填寫一個净当。如果只給出路由内斯,則必須包含Navigator.defaultRouteName(/)條目,因為當應用程序以指定不受支持的路由的意圖啟動時像啼,將使用該條目。

基本示例:

import 'package:flutter/material.dart';

void main() {
   runApp(new MaterialApp(home: MyApp()));
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Flutter Demo"),
      ),
      body: Center(
        child: Text('Hello Flutter'),
      ),
    );
  }
}

在 Dart2 后我們可以在創(chuàng)建對象的時候省略new和const潭苞。例如:Center()等同于new Center()

在上面的例子中我們傳入了home參數(shù)自定義了一個繼承于 StatelessWidget 的組件MyApp忽冻,MyApp的build方法返回一個Scaffold組件。

看下運行效果:


比如,我現(xiàn)在覺得app的默認主題顏色太丑了此疹,我想改成紅色僧诚,怎么辦呢?
很簡單蝗碎,只要我們改變MaterialApp中 theme 參數(shù)就行了湖笨。

void main() {
  runApp(new MaterialApp(
    home: MyApp(),
    theme: ThemeData(
      primaryColor: Colors.red,
    ),
  ));
}

重新運行看下效果:



是不是感覺很簡單。
同理蹦骑,大家可以根據(jù)需要去修改其他屬性慈省。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市眠菇,隨后出現(xiàn)的幾起案子边败,更是在濱河造成了極大的恐慌袱衷,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笑窜,死亡現(xiàn)場離奇詭異致燥,居然都是意外死亡,警方通過查閱死者的電腦和手機排截,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門嫌蚤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人断傲,你說我怎么就攤上這事脱吱。” “怎么了艳悔?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵急凰,是天一觀的道長。 經(jīng)常有香客問我猜年,道長抡锈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任乔外,我火速辦了婚禮床三,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘杨幼。我一直安慰自己撇簿,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布差购。 她就那樣靜靜地躺著四瘫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪欲逃。 梳的紋絲不亂的頭發(fā)上找蜜,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音稳析,去河邊找鬼洗做。 笑死,一個胖子當著我的面吹牛彰居,可吹牛的內(nèi)容都是我干的诚纸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼陈惰,長吁一口氣:“原來是場噩夢啊……” “哼畦徘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤旧烧,失蹤者是張志新(化名)和其女友劉穎影钉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掘剪,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡平委,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了夺谁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廉赔。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖匾鸥,靈堂內(nèi)的尸體忽然破棺而出蜡塌,到底是詐尸還是另有隱情,我是刑警寧澤勿负,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布馏艾,位于F島的核電站,受9級特大地震影響奴愉,放射性物質(zhì)發(fā)生泄漏琅摩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一锭硼、第九天 我趴在偏房一處隱蔽的房頂上張望房资。 院中可真熱鬧,春花似錦檀头、人聲如沸轰异。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搭独。三九已至,卻和暖如春廊镜,著一層夾襖步出監(jiān)牢的瞬間戳稽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工期升, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人互躬。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓播赁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吼渡。 傳聞我的和親對象是個殘疾皇子容为,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 以下內(nèi)容基本翻譯自Write Your First Flutter App,翻譯的并不完全!作為自己學習的筆記坎背,加...
    INeil閱讀 9,654評論 2 10
  • 國慶后面兩天在家學習整理了一波flutter替劈,基本把能擼過能看到的代碼都過了一遍,此文篇幅較長得滤,建議保存(star...
    Nealyang閱讀 4,345評論 1 17
  • 創(chuàng)建的flutter項目中陨献,看一下這些部分是怎么組織起來的 在這個示例中,主要Dart代碼是在 lib/main....
    寒橋閱讀 1,907評論 0 0
  • 前言 最近看到一些剛接觸Flutter的同學在進行頁面跳轉(zhuǎn)的時候懂更,出現(xiàn)了這個問題眨业。 代碼是這樣的 一眼看上去好像沒...
    Vadaski閱讀 28,060評論 22 105
  • 走著走著,就散了沮协,回憶都淡了龄捡; 看著看著,就累了慷暂,星光也暗了聘殖; 聽著聽著,就醒了行瑞,開始埋怨了奸腺; 回頭發(fā)現(xiàn),你不見了...
    笑傾城Love閱讀 236評論 0 3