我想根据当前主题更改输入的文本颜色,因为文本颜色不是InputDecorationTheme
的一部分。
到目前为止,更改输入文字颜色的唯一可能方法是为TextFormField
赋予样式,但是当主题更改时也无法正常工作+这样,我需要为每个文本重复类似的代码应用程序中可用的字段。
答案 0 :(得分:1)
您似乎在看InputDecorationTheme
,而不是TextTheme
。
您要查找的颜色属性应为textTheme.body1.color
,如下所示:
Theme.of(context).textTheme.body1.color
如果不是这个,则应该是textTheme
属性的另一个。
答案 1 :(得分:1)
您可以通过如下设置ThemeData来实现。
MaterialApp(
theme: ThemeData(
textTheme: TextTheme(
subtitle1: TextStyle(fontSize: 50, fontWeight: FontWeight.bold),
),
)
...
答案 2 :(得分:1)
您可以使用TextTheme内的属性 subhead
theme: ThemeData(
brightness: Brightness.dark,
primaryColor: Colors.orange,
accentColor: Colors.green,
textTheme: TextTheme(
subhead: TextStyle(color: Colors.blue),
),
),
或使用此方法:
theme: ThemeData(
brightness: Brightness.dark,
primaryColor: Colors.orange,
accentColor: Colors.green,
textTheme: Theme.of(context)
.textTheme
.apply(bodyColor: Colors.red)`enter code here`
),
关于Flutter https://medium.com/flutter- community/beginners-guide-to-text-styling-in-flutter-3939085d6607中的文本样式的博客
注意:“材料设计”版式设计方案在 规范的最新版本(2018) 更多信息https://material.io/design/typography。
2018年规范具有13种文字样式:
NAME SIZE WEIGHT SPACING
headline1 96.0 light -1.5
headline2 60.0 light -0.5
headline3 48.0 regular 0.0
headline4 34.0 regular 0.25
headline5 24.0 regular 0.0
headline6 20.0 medium 0.15
subtitle1 16.0 regular 0.15
subtitle2 14.0 medium 0.1
body1 16.0 regular 0.5 (bodyText1)
body2 14.0 regular 0.25 (bodyText2)
button 14.0 medium 1.25
caption 12.0 regular 0.4
overline 10.0 regular 1.5
其中“光”为FontWeight.w300
,“常规”为FontWeight.w400
,
“中”是FontWeight.w500
。
[TextTheme] API最初基于原始材料(2014年) 设计规范,它使用了不同的文本样式名称。向后 出于兼容性考虑,此API继续公开旧名称。桌子 以下内容应有助于理解API旧名称的映射,以及 新名称(根据2018年材料规范的名称)。
每种[TextTheme]文本样式都对应一种 2018年规格的款式。默认情况下,字体大小,字体粗细 并且字母间距与原始间距没有变化, 2014,价值观。
NAME SIZE WEIGHT SPACING 2018 NAME
display4 112.0 thin 0.0 headline1
display3 56.0 normal 0.0 headline2
display2 45.0 normal 0.0 headline3
display1 34.0 normal 0.0 headline4
headline 24.0 normal 0.0 headline5
title 20.0 medium 0.0 headline6
subhead 16.0 normal 0.0 subtitle1
body2 14.0 medium 0.0 body1 (bodyText1)
body1 14.0 normal 0.0 body2 (bodyText2)
caption 12.0 normal 0.0 caption
button 14.0 medium 0.0 button
subtitle 14.0 medium 0.0 subtitle2
overline 10.0 normal 0.0 overline