J'espère contrôler la couleur du texte de la barre d'état en mode sombre iOS 13. Je pourrais changer la couleur de la barre d'état en définissant la propriété AppBar de l'échafaudage "luminosité". Lorsque je n'ouvre pas le mode sombre. Codes comme ci-dessous:
return Scaffold(
appBar: AppBar(
brightness: Brightness.light, //<--Here!!!
title: Text(widget.title),
),
...
L'effort comme ça:
Mais lorsque j'active le mode sombre du simulateur , la méthode ne fonctionne pas. Ouvrez "Dark Appearance" du simulateur:
Après avoir ouvert le "Dark Appearance", la couleur du texte de la barre d'état ne pouvait plus changer par la méthode, c'est juste en couleur blanche (mode luminosité).
J'ai essayé ces méthodes pour changer la couleur du texte de la barre d'état:
Méthode 1:
void main() {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown
]);
runApp(MyApp());
}
Méthode 2:
return AnnotatedRegion<SystemUiOverlayStyle>(
value: SystemUiOverlayStyle.light,
child: Material(
child: Scaffold(
appBar: AppBar(
brightness: Brightness.light,
title: Text(widget.title),
),
body: Center(
Mais aucun d'eux ne pouvait fonctionner.
J'espère votre aide! Je vous remercie.
Allez d'abord dans le dossier ios/Runner. Ouvrez ensuite info.plist et ajoutez les lignes suivantes dans la section Dict.
<key>UIUserInterfaceStyle</key>
<string>Light</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
Prochain. Assurez-vous d'avoir ces lignes dans les paramètres de thème de votre MaterialApp:
...
MaterialApp(
themeMode: ThemeMode.light, // Change it as you want
theme: ThemeData(
primaryColor: Colors.white,
primaryColorBrightness: Brightness.light,
brightness: Brightness.light,
primaryColorDark: Colors.black,
canvasColor: Colors.white,
// next line is important!
appBarTheme: AppBarTheme(brightness: Brightness.light)),
darkTheme: ThemeData(
primaryColor: Colors.black,
primaryColorBrightness: Brightness.dark,
primaryColorLight: Colors.black,
brightness: Brightness.dark,
primaryColorDark: Colors.black,
indicatorColor: Colors.white,
canvasColor: Colors.black,
// next line is important!
appBarTheme: AppBarTheme(brightness: Brightness.dark)),
...
Bonne chance!
P.S. Vous n'avez pas besoin de régler la luminosité ici !! plus :)
Scaffold(
appBar: AppBar(
brightness: Brightness.light, //<--Here!!!
title: Text(widget.title),
),
Si votre application est une application matérielle, vous pouvez définir la propriété darkTheme
de votre application matérielle:
return new MaterialApp(
darkTheme: ThemeData.dark(),
);
Voici le lien vers le doc: https://api.flutter.dev/flutter/material/MaterialApp-class.html
Si cela ne résout pas votre problème, vous pouvez créer votre propre thème sombre en utilisant:
return new MaterialApp(
darkTheme: ThemeData(
// Your theme config
),
);
Lien vers le document ThemeData: https://api.flutter.dev/flutter/material/ThemeData-class.html
Sous ios/Runner dans Info.plist, ajoutez
<key>UIUserInterfaceStyle</key>
<string>Light</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
ça a marché pour moi.
import 'package:flutter_statusbarcolor/flutter_statusbarcolor.Dart';
Cela a fonctionné pour moi. Si vous souhaitez utiliser du texte noir:
@override
Widget build(BuildContext context) {
FlutterStatusbarcolor.setStatusBarWhiteForeground(false);
return MaterialApp();
}
Pour l'utilisation de texte blanc:
@override
Widget build(BuildContext context) {
FlutterStatusbarcolor.setStatusBarWhiteForeground(true);
return MaterialApp();
}