Vermutlich fehlt mir etwas. Gibt es eine one - Eigenschaft, die die Farbe des gesamten Textes in einer Flutter-App ändern kann?
So mache ich es jetzt in meiner 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
),
),
),
Ich habe es auch versucht
textTheme: Theme.of(context).textTheme.apply(bodyColor: Colors.pink),
dies gilt jedoch für Dropdown-Text und nicht für normalen Text. Ebenso gilt displayColor
für den appBar-Text und einen InputDecoration-Text, nicht jedoch für regulären Text. Ich habe anscheinend keine decorationText
in meinem Code, daher bin ich mir nicht sicher, wofür das eine ist.
Ich stelle fest, dass es eine textSelectionColor
-Eigenschaft gibt, die jedoch nur für TextField
-Widgets gilt.
Ich denke, TextTheme.apply
ist, was Sie wollen. bodyColor
wird auf headline
, title
, subhead
, button
, body1
und body2
angewendet. displayColor
wird auf display1
durch display4
und caption
angewendet. Wenn Sie sowohl bodyColor
als auch displayColor
angeben und denselben Farbwert verwenden, ändert dies die Textfarben für alle Textstile.
Beispiel:
final newTextTheme = Theme.of(context).textTheme.apply(
bodyColor: Colors.pink,
displayColor: Colors.pink,
);
Vielleicht ein bisschen spät ... aber Sie können dies verwenden:
ThemeData(
primaryTextTheme: Typography(platform: TargetPlatform.iOS).white,
textTheme: Typography(platform: TargetPlatform.iOS).white,
)
Um eine Alternative zu bieten, die scheinbar funktioniert, ohne alle Textstile direkt festzulegen, müssen Sie den Stil der DefaultTextStyle
an der Stelle in der Widget-Struktur ändern, um wirksam zu werden
return DefaultTextStyle(
style: TextStyle(color: Colors.pink),
child: _YOUR_WIDGETS_
)
Für die gesamte App können Sie die Eigenschaft textTheme
in der App Material
festlegen.
MaterialApp(
theme: ThemeData(
textTheme: TextTheme(
body1: TextStyle(),
body2: TextStyle(),
).apply(
bodyColor: Colors.orange,
displayColor: Colors.blue,
),
),
)
wenn Sie es beim Start ändern möchten
return MaterialApp
(
'''
theme: ThemeData
(
canvasColor: Color(0xff30363b),
textTheme: TextTheme
(
//default text style
body1: TextStyle( color: Color(0xFFD0D6DB) ),
),
backgroundColor: Color(0xff30363b),
),
,,,
);