Open2
[Flutter] ThemeDataとかColorSchemeについて
やりたいこと
- アプリ全体のテーマカラー(seed color)を任意で設定したい
- ライトテーマとダークテーマでseed colorに応じた適切な色を表示させたい
実装
MaterialApp
にtheme
とdarkTheme
を設定
1. class MyApp extends StatelessWidget {
const MyApp({super.key});
static const Color _seedColor = Color(0x00c53d43); // 好きな色を記述
Widget build(BuildContext context) {
return MaterialApp(
title: 'Test',
theme: ThemeData( // ライトテーマ用の記述
brightness: Brightness.light,
colorSchemeSeed: _seedColor,
),
darkTheme: ThemeData( // ダークテーマ用の記述
brightness: Brightness.dark,
colorSchemeSeed: _seedColor,
),
home: HomePage(title: 'Home'),
);
}
}
color
等にTheme.of(context).colorScheme.<color>
を指定
2. ウィジェットのContainer(
width: 24,
height: 24,
color: Theme.of(context).colorScheme.surfaceVariant, // ここ!
),
- これだけでライトテーマかダークテーマに応じていい感じに色を表示してくれるようです。
- どのような色にするか(上記コードの
surfaceVariant
に相当するところとして、何を指定すればよいか)目星をつけるには、こちらのツールが大変有用です。