Open3
Flutter dark mode
AppBar、StatusBarのカラー指定
...
MaterialApp(
themeMode: ThemeMode.light, // Change it as you want
theme: ThemeData(
// next line is important!
systemOverlayStyle: SystemUiOverlayStyle.dark,
darkTheme: ThemeData(
appBarTheme: AppBarTheme(
systemOverlayStyle: SystemUiOverlayStyle.light,
...
AppBarにスタイルを当てている場合、常に優先される。
特定の画面で当てるときや、appBarをカスタマイズして、AppBar
を利用せずに適用する場合は、AppBarスタイル適用後に遅延してセットするとうまくいく
WidgetsBinding.instance.addPostFrameCallback((_) {
// set after AppBar apply style, 400ms is magic number
Future.delayed(const Duration(milliseconds: 400)).then((value) {
SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
statusBarBrightness: Brightness.dark, // for ios
statusBarIconBrightness: Brightness.dark, // for android
));
});
});
appBarをカスタマイズして、AppBarを利用せずに適用する
いや、AppBarを利用するに徹したほうが良さそうです!
↑のものでは非同期的に失敗します。し、遅延が人の目からみても遅いのでUX悪い。