web-dev-qa-db-fra.com

Comment vérifier si Android Q le mode sombre est activé dans Flutter?

Comment puis-je vérifier si le mode sombre est activé dans Android Q avec Flutter?
Je sais comment régler le mode sombre, mais je n'ai pas trouvé de moyen de vérifier le thème d'arrière-plan.
Voici le code pour définir le thème sombre.

darkTheme: ThemeData.dark(),
9
R2T8

J'ai trouvé le chemin. C'est ici.

  bool _darkModeEnabled = false;

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

Vous pouvez le vérifier en utilisant MediaQuery.

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

Si vous définissez un thème sombre dans votre MaterialApp, votre application deviendra automatiquement sombre lorsque Android Q thème sombre est activé. Vous devez spécifier votre thème sombre comme ceci:

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

Selon cet article moyen ,

Maintenant, lorsque vous basculez Dark Theme dans votre tiroir système, votre application Flutter passera automatiquement de votre thème habituel à votre darkTheme!

Cependant, si vous souhaitez vérifier manuellement si vous êtes en mode sombre, vous pouvez facilement écrire une méthode à l'aide de l'API Platform Channel. Plus de détails ici . Quant au code natif, cochez ici .

3
Naeem Hasan