Android夜间模式DayNight问题

Android夜间模式DayNight问题 目录
一、问题
二、相关代码
三、问题所在
四、夜间模式
五、解决方案
六、Finally
今天收到用户反馈,界面上完全看不到文字。
这在之前的测试过程中完全没有发现,好在用户发了截图。
一、问题 问题:界面上几乎看不到文字
机型:荣耀畅享8 Plus

位置 描述 截图
主界面 Android夜间模式DayNight问题
文章图片
升级界面 Android夜间模式DayNight问题
文章图片
关于界面 Android夜间模式DayNight问题
文章图片
二、相关代码
1 2 3 4 5 6 7


1 2 3 4 5 6 7 8 9


三、问题所在 绝大部分TextView都没有直接指定文本颜色,而是通过使用textAppearance设置文本风格。
因此问题出在主题Theme上。
使用的主题是Theme.AppCompat.DayNight.NoActionBar,属于AppCompat,相关资源打包在apk安装包中,因此跟手机系统的主题设置无关。
问题唯一的可能便是DayNight上。
四、夜间模式
常量 说明 截图
MODE_NIGHT_FOLLOW_SYSTEM 默认值,跟随系统
MODE_NIGHT_AUTO 根据日出日落时间自动设定
MODE_NIGHT_NO 关闭夜间模式 Android夜间模式DayNight问题
文章图片
MODE_NIGHT_YES 开启夜间模式 Android夜间模式DayNight问题
文章图片
当夜间模式设置为MODE_NIGHT_YES后,出现了与问题一致的情况。
因为默认的夜间模式为MODE_NIGHT_FOLLOW_SYSTEM,因此可能出现开启夜间模式的情况。
神马笔记当前暂未实现夜间模式的配色,因此便出现了问题。
五、解决方案 在ApplicationonCreate()方法中增加下面代码。
1

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);

强制关闭夜间模式。
六、Finally 【Android夜间模式DayNight问题】世尊说我见人见众生见寿者见,即非我见人见众生见寿者见,是名我见人见众生见寿者见。

    推荐阅读