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 后,您将不需要此解决方法。
我创建了一个新项目,其中仅包含一个使用新 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 后,您将不需要此解决方法。