wake-up-neo.net

Wie kann man die gesamte Textfarbe des Themas in Flutter ändern?

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.

9
Mary

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,
);
17
Yegor

Vielleicht ein bisschen spät ... aber Sie können dies verwenden:

ThemeData(
    primaryTextTheme: Typography(platform: TargetPlatform.iOS).white,
    textTheme: Typography(platform: TargetPlatform.iOS).white,
)
2
JawwDeek

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_
)
1
aqwert

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, 
    ),
  ),
) 
0
CopsOnRoad

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),
        ),


        ,,,

    );
0
Manish Dhruw