DayNight 主题始终显示夜间主题

DayNight theme always shows night theme

我创建了一个新项目,其中仅包含一个使用新 Day/Night 主题的非常简单的 activity。 即使在应用程序 class 的静态块中调用 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); 并在 activity 中调用 getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO); 时,activity 也会显示夜间主题。 我在 activity 上设置了一个断点,它报告说 UI 模式是晚上,所以我不知道为什么它拒绝显示白天主题。

我正在编译 against/targetting API 23 并在 Nexus 5 运行 Marshmallow

上进行测试

您还需要致电yourAppCompatActivity.getDelegate().applyDayNight();

参见https://code.google.com/p/android/issues/detail?id=201910。这将在 23.2.1 错误修复版本中修复。

现在,您可以通过调用

强制使用 Activity.onCreate() 中的新配置重新应用主题
getTheme().applyStyle(R.style.Theme_AppCompat_<whatever>, true);

其中 <whatever> 是您在 activity 中使用的主题。更新到 23.2.1 后,您将不需要此解决方法。