Mar*_*ary 24 text colors flutter
可能有一些我不知道的东西.是否有一个属性可以更改Flutter应用程序中所有文本的颜色?
我现在这样做的方式是,在我的MaterialApp中:
theme: ThemeData(
textTheme: Theme.of(context).textTheme.copyWith(
body1:
Theme.of(context).textTheme.body1.apply(color: Colors.pink),
body2:
Theme.of(context).textTheme.body2.apply(color: Colors.pink),
display1:
Theme.of(context).textTheme.display1.apply(color: Colors.pink),
display2:
Theme.of(context).textTheme.display2.apply(color: Colors.pink),
... // and so on
),
),
),
Run Code Online (Sandbox Code Playgroud)
我也试过了
textTheme: Theme.of(context).textTheme.apply(bodyColor: Colors.pink),
Run Code Online (Sandbox Code Playgroud)
但这适用于下拉文本,而不是常规文本.同样,displayColor适用于appBar文本和InputDecoration文本,但不适用于常规文本.我似乎没有任何decorationText代码,所以我不确定那是什么.
我注意到有一个textSelectionColor属性但只适用于TextField小部件.
小智 38
我想TextTheme.apply是你想要的.bodyColor将被应用到headline,title,subhead,button,body1,和body2.displayColor将适用于display1通过display4,和caption.如果同时指定bodyColor,并displayColor与使用相同的颜色值,这将有效地改变所有文本样式文本颜色.
例:
final newTextTheme = Theme.of(context).textTheme.apply(
bodyColor: Colors.pink,
displayColor: Colors.pink,
);
Run Code Online (Sandbox Code Playgroud)
Cop*_*oad 36
对于整个应用程序,您可以textTheme在Material应用程序小部件中设置属性。
MaterialApp(
theme: ThemeData(
textTheme: TextTheme(
bodyText1: TextStyle(),
bodyText2: TextStyle(),
).apply(
bodyColor: Colors.orange,
displayColor: Colors.blue,
),
),
)
Run Code Online (Sandbox Code Playgroud)
aqw*_*ert 13
要提供一种似乎无需直接设置所有Text样式即可工作的替代方法,就是更改DefaultTextStyleWidget树中该位置的样式以生效
return DefaultTextStyle(
style: TextStyle(color: Colors.pink),
child: _YOUR_WIDGETS_
)
Run Code Online (Sandbox Code Playgroud)
小智 7
我正在处理这个:
return MaterialApp(
theme: ThemeData(
textTheme: TextTheme(
bodyText2: TextStyle(
color: Colors.white,
),
),
),
);
Run Code Online (Sandbox Code Playgroud)
小智 6
也许有点晚了......但你可以使用这个:
ThemeData(
primaryTextTheme: Typography(platform: TargetPlatform.iOS).white,
textTheme: Typography(platform: TargetPlatform.iOS).white,
)
Run Code Online (Sandbox Code Playgroud)