【问题标题】:How to manually set dark mode in flutter using ThemeData in Flutter?如何在 Flutter 中使用 ThemeData 在 Flutter 中手动设置暗模式?
【发布时间】:2021-08-16 07:07:26
【问题描述】:

如何在 Flutter 中使用 ThemeData 手动设置暗模式?

我目前正在使用 ThemeData 来处理我的 darkMode 事件:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'App',
      themeMode: ThemeMode.system,
      theme: MainTheme.light,
      darkTheme: MainTheme.dark,
      home: HomeScreen(),
      debugShowCheckedModeBanner: false,
    );
  }
}

我想知道,当我看到特定的小部件时,如何在 Flutter 中手动打开暗模式? 在我制作的每个小部件中,我使用此代码创建一个变量来检查是否激活了暗模式,以便我可以手动管理颜色:

var brightness = MediaQuery.of(context).platformBrightness;
darkModeOn = brightness == Brightness.dark;

【问题讨论】:

标签: android flutter


【解决方案1】:

在黑暗和明亮模式下自定义颜色的另一种方法是读取手机模式,然后在 constants.dart 中设置 if 条件以在两种模式下切换颜色。

【讨论】:

    【解决方案2】:

    我发现在明暗模式之间切换的最简单方法是使用自适应主题包。 https://pub.dev/packages/adaptive_theme

    您需要使用 AdaptiveTheme 包装您的 MaterialApp 才能应用主题。

    之后,您可以使用这段代码在明暗模式之间切换: AdaptiveTheme.of(context).toggleThemeMode();

    【讨论】:

      猜你喜欢
      • 2021-05-03
      • 1970-01-01
      • 2021-11-07
      • 1970-01-01
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-23
      相关资源
      最近更新 更多