web-dev-qa-db-ja.com

FlutterでAndroid Qダークモードが有効になっているかどうかを確認する方法は?

Android QFlutterを使用してダークモードが有効になっているかどうかを確認するにはどうすればよいですか?
ダークモードの設定方法は知っていますが、背景のテーマを確認する方法が見つかりませんでした。
ダークテーマを設定するコードは次のとおりです。

darkTheme: ThemeData.dark(),
9
R2T8

私は道を見つけました。ここにあります。

  bool _darkModeEnabled = false;

  void _checkIfDarkModeEnabled() {
    final ThemeData theme = Theme.of(context);
    theme.brightness == appDarkTheme().brightness
        ? _darkModeEnabled = true
        : _darkModeEnabled = false;
  }
6
R2T8

MediaQueryを使用して確認できます。

var brightness = MediaQuery.of(context).platformBrightness;
if (brightness == Brightness.dark)
  print("Dark mode");
else
  print("Normal mode");
17
CopsOnRoad

MaterialAppでダークテーマを定義すると、Android Qダークテーマが有効になっている場合、アプリは自動的にダークになります。ダークテーマを次のように指定する必要があります。

MaterialApp(
  theme: ThemeData(
    brightness: Brightness.light,
    primaryColor: Colors.red,
  ),
  darkTheme: ThemeData(
    brightness: Brightness.dark,
  ),
);

この中記事 によると、

システムドロワーでダークテーマを切り替えると、Flutterアプリが通常のテーマからダークテーマに自動的に切り替わります。

ただし、ダークモードになっているかどうかを手動で確認する場合は、プラットフォームチャネルAPIを使用して簡単にメソッドを記述できます。詳細 こちら 。ネイティブコードは ここをチェック

3
Naeem Hasan