在Flutter中使用ThemeData來(lái)在應(yīng)用中共享顏色和字體樣式,Theme有兩種:全局Theme和局部Theme。 全局Theme是由應(yīng)用程序根MaterialApp創(chuàng)建的Theme 。
定義好一個(gè)Theme后,就可以在自己的Widget中使用它。另外,F(xiàn)lutter提供的Material Widgets將使用我們的Theme為AppBars、Buttons、Checkboxes等設(shè)置背景顏色和字體樣式。
| 屬性 | 解釋 |
|---|---|
| brightness | Brightness類(lèi)型,應(yīng)用程序的整體主題亮度。用于按鈕等小部件,以確定在不使用主色(primaryColor)或強(qiáng)調(diào)色(accentColor)時(shí)選擇什么顏色。當(dāng)亮度較暗時(shí),畫(huà)布、卡片和原色都較暗。當(dāng)亮度為光時(shí),畫(huà)布和卡片的顏色是明亮的,原色的暗度根據(jù)原色亮度變化。當(dāng)亮度較暗時(shí),原色(primaryColor)與卡片和畫(huà)布顏色的對(duì)比度較差;當(dāng)亮度較暗時(shí),用白色或亮藍(lán)色來(lái)對(duì)比。 |
| primaryColor | Color類(lèi)型,App主要部分的背景色(ToolBar,Tabbar等) |
| primaryColorBrightness | Brightness類(lèi)型,primaryColor的亮度,用于確定設(shè)置在primaryColor上部的文本和圖標(biāo)顏色(如:工具欄文本(toolbar text))。 |
| primaryColorLight | Color類(lèi)型,primaryColor的較淺版本 |
| primaryColorDark | Color類(lèi)型,primaryColor的較深版本 |
| accentColor | Color類(lèi)型,前景色(按鈕、文本、覆蓋邊緣效果等) |
| accentColorBrightness | Brightness類(lèi)型,accentColor的亮度。用于確定位于accentColor上部的文本和圖標(biāo)顏色(例如,浮動(dòng)操作按鈕(FloatingButton)上的圖標(biāo)) |
| canvasColor | Color類(lèi)型,MaterialType.canvas Material的默認(rèn)顏色。 |
| scaffoldBackgroundColor | Color類(lèi)型,作為Scaffold下的Material默認(rèn)顏色,用于materia應(yīng)用程序或app內(nèi)頁(yè)面的背景色。 |
| bottomAppBarColor | Color類(lèi)型,bottomAppBarColor的默認(rèn)顏色。這可以通過(guò)指定BottomAppBar.color來(lái)覆蓋。 |
| cardColor | Color類(lèi)型,用在卡片(Card)上的Material的顏色。 |
| dividerColor | Color類(lèi)型,分隔符(Dividers)和彈窗分隔符(PopupMenuDividers)的顏色,也用于ListTiles和DataTables的行之間。要?jiǎng)?chuàng)建使用這種顏色的合適的邊界,請(qǐng)考慮Divider.createBorderSide。 |
| highlightColor | Color類(lèi)型,用于墨水噴濺動(dòng)畫(huà)或指示菜單被選中時(shí)的高亮顏色 |
| splashColor | Color類(lèi)型,墨水濺出的顏色 |
| splashFactory | InteractiveInkFeatureFactory類(lèi)型,定義InkWall和InkResponse產(chǎn)成的墨水噴濺時(shí)的外觀。 |
| selectedRowColor | Color類(lèi)型,用于高亮選定行的顏色。 |
| unselectedWidgetColor | Color類(lèi)型,小部件處于非活動(dòng)(但啟用)狀態(tài)時(shí)使用的顏色。例如,未選中的復(fù)選框。通常與accentColor形成對(duì)比。 |
| disabledColor | Color類(lèi)型,無(wú)效的部件(widget)的顏色,不管它們的狀態(tài)如何。例如,一個(gè)禁用的復(fù)選框(可以選中或不選中)。 |
| buttonColor | Color類(lèi)型,Material中RaisedButtons使用的默認(rèn)填充色。 |
| buttonTheme | ButtonThemeData類(lèi)型,定義按鈕小部件的默認(rèn)配置,如RaisedButton和FlatButton。 |
| secondaryHeaderColor | Color類(lèi)型,有選定行時(shí)PaginatedDataTable標(biāo)題的顏色 |
| textSelectionColor | Color類(lèi)型,文本字段(如TextField)中文本被選中的顏色。 |
| cursorColor | Color類(lèi)型,在 Material-style 文本字段(如TextField)中光標(biāo)的顏色。 |
| textSelectionHandleColor | Color類(lèi)型,用于調(diào)整當(dāng)前選定文本部分的句柄的顏色。 |
| backgroundColor | Color類(lèi)型,與primaryColor對(duì)比的顏色(例如 用作進(jìn)度條的剩余部分)。 |
| dialogBackgroundColor | Color類(lèi)型,Color類(lèi)型,Dialog元素的背景色 |
| indicatorColor | Color類(lèi)型,TabBar中選項(xiàng)選中的指示器顏色。 |
| hintColor | Color類(lèi)型,用于提示文本或占位符文本的顏色,例如在TextField中。 |
| errorColor | Color類(lèi)型,用于輸入驗(yàn)證錯(cuò)誤的顏色,例如在TextField中。 |
| toggleableActiveColor | Color類(lèi)型,用于突出顯示切換Widget(如Switch,Radio和Checkbox)的活動(dòng)狀態(tài)的顏色。 |
| fontFamily | String類(lèi)型,字體類(lèi)型 |
| textTheme | TextTheme類(lèi)型,與卡片和畫(huà)布對(duì)比的文本顏色 |
| primaryTextTheme | TextTheme類(lèi)型,與primary color形成對(duì)比的文本主題。 |
| accentTextTheme | TextTheme類(lèi)型,與accent color形成對(duì)比的文本主題。 |
| inputDecorationTheme | InputDecorationTheme類(lèi)型,InputDecorator、TextField和TextFormField的默認(rèn)InputDecoration值基于此主題。 |
| iconTheme | IconThemeData類(lèi)型,與卡片和畫(huà)布顏色形成對(duì)比的圖標(biāo)主題。 |
| primaryIconTheme | IconThemeData類(lèi)型,與原色(primary color)形成對(duì)比的圖標(biāo)主題。 |
| accentIconTheme | IconThemeData類(lèi)型,與前景色(accent color)形成對(duì)比的圖標(biāo)主題。 |
| sliderTheme | SliderThemeData類(lèi)型,SliderThemeData類(lèi)型,用于渲染Slider的顏色和形狀。 |
| tabBarTheme | TabBarTheme類(lèi)型, 一個(gè)主題,用于自定義選項(xiàng)卡欄指示器的尺寸、形狀和顏色。 |
| chipTheme | ChipThemeData類(lèi)型,用于Chip的顏色和樣式 |
| platform | TargetPlatform類(lèi)型,widget應(yīng)該適應(yīng)目標(biāo)的平臺(tái)。 |
| materialTapTargetSize | MaterialTapTargetSize類(lèi)型,配置特定材料部件的hit測(cè)試大小。 |
| pageTransitionsTheme | PageTransitionsTheme類(lèi)型,每個(gè)目標(biāo)平臺(tái)的默認(rèn)MaterialPageRoute轉(zhuǎn)換。 |
| colorScheme | ColorScheme類(lèi)型,一組13種顏色,可用于配置大多數(shù)組件的顏色屬性。 |
| typography | Typography類(lèi)型,用于配置TextTheme、primaryTextTheme和accentTextTheme的顏色和幾何文本主題值。 |