【问题标题】:Detect if OS dark mode is active检测操作系统暗模式是否处于活动状态
【发布时间】:2021-08-16 14:52:10
【问题描述】:

我正在寻找一种使用 Flutter 来检测操作系统暗模式是否处于活动状态的方法。我只希望我的应用程序遵循 OS 暗模式设置。我在谷歌上搜索过,大部分主题都是关于“设置和切换”暗模式,而不是检测操作系统的暗模式。

【问题讨论】:

  • 问题的本质是一样的,但是在那个线程上,答案并不完美,不适用于旧手机(红屏错误)。幸好这次得到了可靠的答案。

标签: flutter detect darkmode


【解决方案1】:

您可以使用platformBrightness 来检测操作系统的当前模式

bool isDarkMode() {
    final darkMode = WidgetsBinding.instance.window.platformBrightness;
    if (darkMode == Brightness.dark) {
      return true;
    } else {
      return false;
    }
  }

【讨论】:

  • 谢谢,您的解决方案运行良好。我用旧手机和新手机都试过了。在操作系统不支持暗模式的旧手机中,它返回“false”,这是正确的。
【解决方案2】:

在你的构建方法中试试这个

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

【讨论】:

  • 感谢您的回答,但似乎不适用于操作系统不支持暗模式的旧手机,它会出现“红屏”错误。
猜你喜欢
  • 2018-11-23
  • 2022-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-02
  • 2012-01-27
  • 2020-01-11
相关资源
最近更新 更多