我创建了一个新项目,其中只包含一个使用新日/夜主题的非常简单的活动。
即使在应用程序类的静态块中调用AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
并在活动中调用getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
,活动也会显示夜间主题。
我已经在活动上设置了一个断点,并报告了UI模式是晚上的情况,所以我不知道它为什么拒绝显示日期主题。
我正在编译/目标API 23并在运行Marshmallow的Nexus 5上进行测试
答案 0 :(得分:1)
您还需要致电yourAppCompatActivity.getDelegate().applyDayNight();
。
答案 1 :(得分:1)
见https://code.google.com/p/android/issues/detail?id=201910。这将在23.2.1修正版中修复。
现在,您可以通过调用
强制使用Activity.onCreate()
中的新配置重新应用主题
getTheme().applyStyle(R.style.Theme_AppCompat_<whatever>, true);
其中<whatever>
是您在该活动中使用的主题。更新到23.2.1后,您将不需要此解决方法。