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(),
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;
}
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");
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 .