ThemeData使用
ThemeData 属性
Brightness brightness
深色或者浅色主题。dark主题时,背景为深色,需要浅色文字;light主题时,背景为浅色,需要深色文字
默认为Brightness.light
MaterialColor primarySwatch
主题颜色样本,类似调色板。为主题色的一个样本色,通过样本色可以定义主题色。
有10个等级的渐变色。如果没有指定primaryColor,并且当前主题不是深色主题,那么primaryColor就会默认为primarySwatch指定的颜色
默认为Colors.blue
Color primaryColor
主题色。primarySwatch 和 primaryColor 同事设置,系统主题会根据 primaryColor 进行设置。决定导航栏颜色。
如果是 Brightness.dark状态,为 Colors.grey[500],否则为默认色 primarySwatch[100]。
Brightness primaryColorBrightness
主要是配合暗色背景增加对比度,感觉用处不大,需要配合次要颜色才能使用。用于确定文本颜色,悬浮按钮等。
Color primaryColorLight
为空 主题是否是暗色。如果是暗色,颜色为 Colors.grey[500],否则primarySwatch[100]
不为空 为设置颜色
Color primaryColorDark
为空 主题是否为暗色。如果是暗色,颜色为黑色,否则为primarySwatch[700]
Color accentColor
次要颜色。如果有指定会影响 accentColorBrightness 。
如果为空 主题是暗色,颜色为Colors.tealAccent[200] 否则为 primarySwatch[500]
Brightness accentColorBrightness
用于确定文本颜色,悬浮按钮等。类似于primaryColorBrightness
Color canvasColor
MaterialType.canvas 类型的默认颜色 为Material.
如为空 暗色主题为 Colors.grey[850] 否则为 Colors.grey[50]
Color scaffoldBackgroundColor
scaffold 背景色
如为空,颜色等同于canvasColor
Color bottomAppBarColor
可以覆盖 BottomAppBar.color 颜色
如为空,主题为暗色则为 Colors.grey[800] 否则为 Colors.white
Color cardColor
Material 使用卡片的颜色 使用需要 Card包裹,用的不多
暗色主题为 Colors.grey[800] 否则为 Colors.white
Color dividerColor
Divider 颜色,但是貌似这个高度无法设置,感觉用处不大
如为空, 暗色主题 Color(0x1FFFFFFF) 否则Color(0x1F000000)
Color focusColor
用于输入框 focus颜色
如为空 暗色主题 Colors.white.withOpacity(0.12) 亮色主题 Colors.black.withOpacity(0.12)
Color hoverColor
指示器悬停颜色,不知道咋用的。可能是web端使用?
如为空 暗色主题 Colors.white.withOpacity(0.04) 亮色主题 Colors.black.withOpacity(0.04)
Color highlightColor
选中颜色
如为空,暗色主题为 Color(0x40CCCCCC) 亮色主题为 Color(0x66BCBCBC)
可自定义,设置buttonThme可覆盖,同时按钮可不主动设置
Color splashColor
水波纹颜色
如为空,暗色主题为 Color(0x40CCCCCC) 亮色主题为 Color(0x66C8C8C8)
可自定义,设置buttonThme可覆盖,同时按钮可不主动设置
如取消水波纹颜色,最简单的方式 Colors.transparent
貌似
InteractiveInkFeatureFactory splashFactory
自定义水波纹样式
暂时不用,没具体研究
Color selectedRowColor
选中row颜色,默认 Colors.grey[100]
Color unselectedWidgetColor
如为空,暗色主题为 Colors.white70 亮色主题为 Colors.black54
通常用在非活动,但可用的状态。例如 checkbox,未选中桩状态
Color disabledColor
不工作控件的颜色,不管其状态如何。例如禁用状态的Checkbox,或者FlatButton
如为空,暗色主题为 Colors.white30 亮色主题为 Colors.black38
貌似需要在FlatButton手动设置disabled才会生效?Checkbox 会生效
Color buttonColor
如为空 暗色主题为 primarySwatch[600] 亮色主题为 Colors.grey[300]
填充背景色按钮最好手动设置,否则容易被覆盖
ButtonThemeData buttonTheme
按钮统一可以设置主题,覆盖单个设置
PS:最好在这里设置,不会影响其他设置
Color secondaryHeaderColor
如为空,暗色主题为 Colors.grey[700] 否则 primarySwatch[50]
好像是个表格形式的,QING App上貌似用不到,没研究
Color textSelectionColor
文字选中颜色,例如 TextField
如为空 暗色主题为 accentColor 否则 primarySwatch[200]
Color cursorColor
如为空 Color.fromRGBO(66, 133, 244, 1.0)
光标颜色
Color textSelectionHandleColor
Color backgroundColor
例如用在 progress,用来跟 primaryColor进行对比色
如为空 暗色主题 Colors.grey[700] 亮色主题 primarySwatch[200]
Color dialogBackgroundColor
如为空 暗色主题:Colors.grey[800] 亮色主题 Colors.white
弹框 dialog背景色
Color indicatorColor
标签栏中选中颜色 指示器颜色
当为空时 如 accentColor == primaryColor 颜色为 白色,否则为 accentColor
Color hintColor
用于占位符文字颜色,多用于 TextField
如为空 暗色主题 Color(0x80FFFFFF) 否则 const Color(0x8A000000)
Color errorColor
错误文字提示颜色
Color toggleableActiveColor
用于可切换控件的高亮颜色,例如 Switch,Radio,Checkbox
??= isDark ? Colors.tealAccent[200] : (accentColor ?? primarySwatch[600])
如为空 暗色主题 Colors.tealAccent[200] 亮色主题如果有 accentColor则为此颜色,如为空则为 primarySwatch[600]
String fontFamily
字体
TextTheme textTheme
默认是Android峰哥,如果是暗色主题,则为白色,如果是亮色则为黑色
文字的一些颜色 title,subhead,body,button,subtitle,overline等
TextTheme primaryTextTheme
类似 primary color
TextTheme accentTextTheme
类似 accent color
InputDecorationTheme inputDecorationTheme
TextField使用
IconThemeData iconTheme
icon图片配置
如为空 暗色主题 IconThemeData(color: Colors.white) 亮色主题 IconThemeData(color: Colors.black87);
无需显示设置
IconThemeData primaryIconTheme
参照 primary color 设置 iconTheme就可以了
IconThemeData accentIconTheme
参照 accent color 同样会被覆盖
SliderThemeData sliderTheme
用于 Slider控件,可通过 SliderTheme.of获取
TabBarTheme tabBarTheme
可自定义size,shape,color等tabbar 指示器
CardTheme cardTheme
card 主题
ChipThemeData chipTheme
Chip 标签控件
TargetPlatform platform
默认为Android峰哥,可设置为iOS风格
MaterialTapTargetSize materialTapTargetSize
可配置点击大小。不会用
PageTransitionsTheme pageTransitionsTheme
界面跳转。
AppBarTheme appBarTheme
AppBar 属性
BottomAppBarTheme bottomAppBarTheme
bottomAppBar 主题
ColorScheme colorScheme
设置很多颜色,cardColor,ButtonColor等,现有组件逐渐迁移到此,会向后兼容
可直接设置主题,无需使用此
DialogTheme dialogTheme
弹出控件主题
FloatingActionButtonThemeData floatingActionButtonTheme
悬浮按钮主题
Typography typography
配置TextTheme,默认是Android风格
CupertinoThemeData cupertinoOverrideTheme
默认是空,可以不用
SnackBarThemeData snackBarTheme
Snack 主题,类似Toast
BottomSheetThemeData bottomSheetTheme
bottom sheet 主题
网友评论