web-dev-qa-db-ja.com

Flutterでテーマ全体のテキストの色を変更するには?

おそらく私が見逃している明らかな何かがあります。 Flutterアプリのすべてのテキストの色を変更できるoneプロパティはありますか?

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

私も試しました

textTheme: Theme.of(context).textTheme.apply(bodyColor: Colors.pink),

ただし、これは通常のテキストではなく、ドロップダウンテキストに適用されます。同様に、displayColorはappBarテキストとInputDecorationテキストに適用されますが、通常のテキストには適用されません。コードにdecorationTextが含まれていないようですので、それが何のためのものなのかわかりません。

textSelectionColorプロパティがありますが、TextFieldウィジェットにのみ適用されることに注意してください。

21
Mary

TextTheme.apply はあなたが望むものだと思います。 bodyColorは、headlinetitlesubheadbuttonbody1、およびbody2に適用されます。 displayColordisplay1からdisplay4に適用され、captionに適用されます。 bodyColordisplayColorの両方を指定し、同じ色の値を使用すると、すべてのテキストスタイルのテキストの色が効果的に変更されます。

例:

final newTextTheme = Theme.of(context).textTheme.apply(
  bodyColor: Colors.pink,
  displayColor: Colors.pink,
);
32
Yegor

すべてのテキストスタイルを直接設定せずに機能するように見える代替手段を提供するには、ウィジェットツリーの場所でDefaultTextStyleのスタイルを変更して有効にします

return DefaultTextStyle(
  style: TextStyle(color: Colors.pink),
  child: _YOUR_WIDGETS_
)
8
aqwert

少し遅いかもしれませんが、これを使用できます:

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

アプリ全体について、textThemeアプリでMaterialプロパティを設定できます。

MaterialApp(
  theme: ThemeData(
    textTheme: TextTheme(
      body1: TextStyle(),
      body2: TextStyle(),
    ).apply(
      bodyColor: Colors.orange, 
      displayColor: Colors.blue, 
    ),
  ),
) 
0
CopsOnRoad

起動時に変更したい場合

    return MaterialApp
    (
        '''

        theme: ThemeData
        (

            canvasColor: Color(0xff30363b),
            textTheme: TextTheme
            (
               //default text style
                body1: TextStyle( color: Color(0xFFD0D6DB) ),
            ),
            backgroundColor: Color(0xff30363b),
        ),


        ,,,

    );
0
Manish Dhruw