flutter MaterialApp 的ThemeData

吐泡泡a發表於2020-11-10

參考地址https://www.jianshu.com/p/8d8ded72e673

沒用想到主題裡封裝了這麼多可以統一設定的東西吧!我是複製累了才發現的…哈…haha…

factory ThemeData({
//Brightness型別,應用程式的整體主題亮度。用於按鈕等小部件,以確定在不使用主色(primaryColor)或強調色(accentColor)時選擇什麼顏色。當亮度較暗時,畫布、卡片和原色都較暗。當亮度為光時,畫布和卡片的顏色是明亮的,原色的暗度根據原色亮度變化。當亮度較暗時,原色(primaryColor)與卡片和畫布顏色的對比度較差;當亮度較暗時,用白色或亮藍色來對比。
    Brightness brightness,
    VisualDensity visualDensity,
    MaterialColor primarySwatch,
    //Color型別,App主要部分的背景色(ToolBar,Tabbar等)
    Color primaryColor,
    //Brightness型別,primaryColor的亮度,用於確定設定在primaryColor上部的文字和圖示顏色(如:工具欄文字(toolbar text))
    Brightness primaryColorBrightness,
    //Color型別,primaryColor的較淺版本
    Color primaryColorLight,
    //Color型別,primaryColor的較深版本
    Color primaryColorDark,
    //Color型別,前景色(按鈕、文字、覆蓋邊緣效果等)
    Color accentColor,
    //Brightness型別,accentColor的亮度。用於確定位於accentColor上部的文字和圖示顏色(例如,浮動操作按鈕(FloatingButton)上的圖示)
    Brightness accentColorBrightness,
    //Color型別,MaterialType.canvas Material的預設顏色。
    Color canvasColor,
    Color shadowColor,
    //Color型別,作為Scaffold下的Material預設顏色,用於materia應用程式或app內頁面的背景色。
    Color scaffoldBackgroundColor,
    //Color型別,bottomAppBarColor的預設顏色。這可以通過指定BottomAppBar.color來覆蓋。
    Color bottomAppBarColor,
    //Color型別,用在卡片(Card)上的Material的顏色。
    Color cardColor,
    //Color型別,分隔符(Dividers)和彈窗分隔符(PopupMenuDividers)的顏色,也用於ListTiles和DataTables的行之間。要建立使用這種顏色的合適的邊界,請考慮Divider.createBorderSide
    Color dividerColor,
    Color focusColor,
    Color hoverColor,
    // Color型別,用於墨水噴濺動畫或指示選單被選中時的高亮顏色
    Color highlightColor,
    //Color型別,墨水濺出的顏色
    Color splashColor,
    //InteractiveInkFeatureFactory型別,定義InkWall和InkResponse產成的墨水噴濺時的外觀。
    InteractiveInkFeatureFactory splashFactory,
    //Color型別,用於高亮選定行的顏色。
    Color selectedRowColor,
    //Color型別,小部件處於非活動(但啟用)狀態時使用的顏色。例如,未選中的核取方塊。通常與accentColor形成對比。
    Color unselectedWidgetColor,
    //Color型別,無效的部件(widget)的顏色,不管它們的狀態如何。例如,一個禁用的核取方塊(可以選中或不選中)。
    Color disabledColor,
    //Color型別,Material中RaisedButtons使用的預設填充色。
    Color buttonColor,
    //ButtonThemeData型別,定義按鈕小部件的預設配置,如RaisedButton和FlatButton
    ButtonThemeData buttonTheme,
    ToggleButtonsThemeData toggleButtonsTheme,
    //Color型別,有選定行時PaginatedDataTable標題的顏色
    Color secondaryHeaderColor,
    //Color型別,文字欄位(如TextField)中文字被選中的顏色。
    Color textSelectionColor,
    //Color型別,在 Material-style 文字欄位(如TextField)中游標的顏色。
    Color cursorColor,
    //Color型別,用於調整當前選定文字部分的控制程式碼的顏色。
    Color textSelectionHandleColor,
    //Color型別,與primaryColor對比的顏色(例如 用作進度條的剩餘部分)。
    Color backgroundColor,
    //Color型別,Color型別,Dialog元素的背景色
    Color dialogBackgroundColor,
    //Color型別,TabBar中選項選中的指示器顏色。
    Color indicatorColor,
    //Color型別,用於提示文字或佔位符文字的顏色,例如在TextField中。
    Color hintColor,
    // Color型別,用於輸入驗證錯誤的顏色,例如在TextField中。
    Color errorColor,
    // Color型別,用於突出顯示切換Widget(如Switch,Radio和Checkbox)的活動狀態的顏色。
    Color toggleableActiveColor,
    //String型別,字型型別
    String fontFamily,
    //TextTheme型別,與卡片和畫布對比的文字顏色
    TextTheme textTheme,
    //TextTheme型別,與primary color形成對比的文字主題。
    TextTheme primaryTextTheme,
    //TextTheme型別,與accent color形成對比的文字主題。
    TextTheme accentTextTheme,
    //InputDecorationTheme型別,InputDecorator、TextField和TextFormField的預設InputDecoration值基於此主題。
    InputDecorationTheme inputDecorationTheme,
    //IconThemeData型別,與卡片和畫布顏色形成對比的圖示主題。
    IconThemeData iconTheme,
    //IconThemeData型別,與原色(primary color)形成對比的圖示主題。
    IconThemeData primaryIconTheme,
    // IconThemeData型別,與前景色(accent color)形成對比的圖示主題。
    IconThemeData accentIconTheme,
    //SliderThemeData型別,SliderThemeData型別,用於渲染Slider的顏色和形狀。
    SliderThemeData sliderTheme,
    //TabBarTheme型別, 一個主題,用於自定義選項卡欄指示器的尺寸、形狀和顏色。
    TabBarTheme tabBarTheme,
    //用於tooltip(提示資訊)的顏色和樣式
    TooltipThemeData tooltipTheme,
    //用於card的顏色和樣式
    CardTheme cardTheme,
    //ChipThemeData型別,用於Chip的顏色和樣式
    ChipThemeData chipTheme,
    // TargetPlatform型別,widget應該適應目標的平臺。
    TargetPlatform platform,
    //MaterialTapTargetSize型別,配置特定材料部件的hit測試大小。
    MaterialTapTargetSize materialTapTargetSize,
    bool applyElevationOverlayColor,
    // PageTransitionsTheme型別,每個目標平臺的預設MaterialPageRoute轉換。
    PageTransitionsTheme pageTransitionsTheme,
    AppBarTheme appBarTheme,
    BottomAppBarTheme bottomAppBarTheme,
    //ColorScheme型別,一組13種顏色,可用於配置大多陣列件的顏色屬性。
    ColorScheme colorScheme,
    DialogTheme dialogTheme,
    FloatingActionButtonThemeData floatingActionButtonTheme,
    NavigationRailThemeData navigationRailTheme,
    //Typography型別,用於配置TextTheme、primaryTextTheme和accentTextTheme的顏色和幾何文字主題值。
    Typography typography,
    CupertinoThemeData cupertinoOverrideTheme,
    SnackBarThemeData snackBarTheme,
    BottomSheetThemeData bottomSheetTheme,
    PopupMenuThemeData popupMenuTheme,
    MaterialBannerThemeData bannerTheme,
    DividerThemeData dividerTheme,
    ButtonBarThemeData buttonBarTheme,
    BottomNavigationBarThemeData bottomNavigationBarTheme,
    TimePickerThemeData timePickerTheme,
    TextButtonThemeData textButtonTheme,
    ElevatedButtonThemeData elevatedButtonTheme,
    OutlinedButtonThemeData outlinedButtonTheme,
    TextSelectionThemeData textSelectionTheme,
    DataTableThemeData dataTableTheme,
    bool fixTextFieldOutlineLabel,
    bool useTextSelectionTheme,
class AppScene extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '我是標題',
      navigatorObservers: [routeObserver],
      // 去除頭部debug標籤
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primaryColor: Colors.white,
        dividerColor: Color(0xffeeeeee),
        scaffoldBackgroundColor: SQColor.paper,
        textTheme: TextTheme(bodyText1: TextStyle(color: SQColor.darkGray)),
      ),
      home: HomePage(),
    );
  }
}

相關文章