Dart

50. Flutterでダークモードを設定する

Flutte でiOSのダークモードを設定するする方法が分からなかったので備忘録として残しておきます。

尚、iOのシミュレータで試したい場合は設定アプリ上から

「Developer」 < 「Dark Appearance」

でスイッチを切り替えを行うと変わります。

f:id:qed805:20200425190537p:plain

設定アプリ

デフォルト ダークモード
f:id:qed805:20200425190432p:plain
デフォルトモード
f:id:qed805:20200425190451p:plain
ダークモード
void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      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)),
      title: 'ダークモードのアプリ',
      home: HomePage(title: '見つける'),
    );
  }
}

参考

また、片方のテーマだけで良い場合は MaterialApp の themeMode を指定すればライトモードかダークモードに指定できます。

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      /// ライトモード
      themeMode: ThemeMode.light,
      title: 'Apple Music Clone',
      home: HomePage(title: '見つける'),
    );
  }
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      /// ダークモード
      themeMode: ThemeMode.dark,
      title: 'Apple Music Clone',
      home: HomePage(title: '見つける'),
    );
  }
}

それでは、バイバイ。

ABOUT ME
tamappe
都内で働くiOSアプリエンジニアのTamappeです。 当ブログではモバイルアプリの開発手法について紹介しています。メインはiOS、サブでFlutter, Android も対応できます。 執筆・講演のご相談は tamapppe@gmail.com までお問い合わせください。