FlutterでContainerの中にTextがあるようなケースです。
Container( child:Text('test'), )
ここでContainerの背景色を指定します。
Container( color:Colors.blue[100], child:Text('test'), )
ライトテーマ時の文字色がデフォルトの黒、
Containerの背景色がColors.blue[100]
で、これでライトテーマ時に問題無いデザインである、ということにします。
ただ、ダークテーマに切り替えると文字色が白色になるのですが、
指定した背景色はColors.blue[100]のままなので、背景色と文字色のコントラストが不明瞭でかなり文字が読みづらくなってしまいます。
まず頭に浮かんだ方法として、
Container( color:Theme.of(context).brightness == Brightness.light ? Colors.blue[100] : Colors.blue, child:Text('test'), )
上記のようにすればダークテーマ時は背景色がColors.blueになるので、読みづらくなくなりました。
なのでここはこれで解決なのですが、こういうケースで上記のように手動で毎回ダークテーマ時の背景色を場合分けで指定するのは冗長に感じてしまいます。
フレームワークとしてもう少しスマートなやり方があるのかなあ、あれば良いなあ、という感じなのですが何かありますでしょうか?
頭に浮かんでいるのはTheme、ThemeDataを使って、アプリ全体で統一的にこういう問題を解決する(もっとスマートな)方法があるのか、ということが気になっています。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/03/30 01:02