【发布时间】:2016-05-15 22:34:04
【问题描述】:
AppCompatDelegate.MODE_NIGHT_AUTO 没有更新我现有的活动,我不知道为什么。
我动态地允许用户更改夜间模式。如果用户将模式更改为自动,我会设置默认夜间模式,然后重新创建活动:
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO);
recreate();
如果我更改为 MODE_NIGHT_YES 或 MODE_NIGHT_NO,它会按预期工作。如果我更改为 MODE_NIGHT_AUTO,它会转到正确的暗/亮主题,但是在从白天到晚上的转换后它无法更新活动。测试这个有点糟糕,因为我必须等待日出/日落(编辑:显然我可以手动更改设备上的时间,而不必等待......只要不使用位置权限)。
我是否必须手动检查 onresume 中的夜间模式标志并手动更新现有活动的资源,还是我做错了什么?如果我旋转设备并在日落后重新创建活动,则正确选择了深色主题,但在旋转之前它仍会显示浅色主题。
支持 lib 23.4.0,Android 6.0 版本。
【问题讨论】:
-
可能会说这是一个错误。期望从白天到晚上(或其他方式)的切换会触发配置更改,从而自动重新创建您的活动,这并非不合理。至少选择加入它会很好。我想这值得在 AOSP 错误跟踪器中报告。