lutter中一切皆widget,這和RN中一切皆組件的思想很相似,所以在學習Flutter中,咱們必須首先來了解Flutter的widget.下面先從最基本的MaterialApp和Scaffold開始瞭解app
1 MaterialApp
一個封裝了不少Android MD設計所必需要的組件的小部件,通常做爲頂層widget使用。less
繼承關係
Inheritance
Object->Diagnosticable ->DiagnosticableTree ->Widget ->StatefulWidget ->MaterialApp佈局
通常與如下widget一塊兒使用
Scaffold: Material Design佈局結構的基本實現。此類提供了用於顯示drawer、snackbar和底部sheet的API。
Navigator,用於管理應用程序的頁面堆棧。
MaterialPageRoute,它定義以特定於材料的方式轉換的應用頁面。
WidgetsApp,它定義基本的app元素但不依賴於材質庫。學習
通常來講,在Flutter中,咱們若是遵循MD設計時,頂層的Widget通常是MaterialApp,這裏面咱們能夠指定主題樣式,以便應用與APP整個頁面中設計
2 Scaffold
Material Design佈局結構的基本實現。此類提供了用於顯示drawer、snackbar和底部sheet的API。
簡單來講,Scanold就是一個提供MD設計中基本佈局的widget,包括最上面的appBar,body,以及下部的drawer,snackbar等繼承
繼承關係
Object –>Diagnosticable ->DiagnosticableTree ->Widget ->StatefulWidget ->Scaffoldget
經常使用元素
appBar 標題欄
backgroundColor 背景色
body 內容區
it