admin管理员组文章数量:1516870
Android夜间模式DayNight问题
目录
今天收到用户反馈,界面上完全看不到文字。
这在之前的测试过程中完全没有发现,好在用户发了截图。
一、问题
问题:界面上几乎看不到文字
机型:荣耀畅享8 Plus
| 位置 | 描述 | 截图 |
|---|---|---|
| 主界面 | ||
| 升级界面 | ||
| 关于界面 |
二、相关代码
1 2 3 4 5 6 7 | <TextView
android:id="@+id/tv_title"
android:textAppearance="@style/TextAppearance.AppCompat.Title"
android:text="@string/app_name"
android:singleLine="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
|
1 2 3 4 5 6 7 8 9 | <TextView
android:id="@+id/tv_name"
android:textAppearance="@style/TextAppearance.AppCompat.Title"
android:layout_width="0dp"
android:gravity="left|center_vertical"
android:layout_height="match_parent"
android:singleLine="true"
android:lines="1"
android:layout_weight="1"/>
|
三、问题所在
绝大部分
TextView
都没有直接指定文本颜色,而是通过使用
textAppearance
设置文本风格。
因此问题出在主题
Theme
上。
使用的主题是
Theme.AppCompat.DayNight.NoActionBar
,属于
AppCompat
,相关资源打包在apk安装包中,因此跟手机系统的主题设置无关。
问题唯一的可能便是
DayNight
上。
四、夜间模式
| 常量 | 说明 | 截图 |
|---|---|---|
| MODE_NIGHT_FOLLOW_SYSTEM | 默认值,跟随系统 | |
| MODE_NIGHT_AUTO | 根据日出日落时间自动设定 | |
| MODE_NIGHT_NO | 关闭夜间模式 | |
| MODE_NIGHT_YES | 开启夜间模式 |
当夜间模式设置为 MODE_NIGHT_YES 后,出现了与问题一致的情况。
因为默认的夜间模式为 MODE_NIGHT_FOLLOW_SYSTEM ,因此可能出现开启夜间模式的情况。
当前暂未实现夜间模式的配色,因此便出现了问题。
五、解决方案
在
Application
的
onCreate()
方法中增加下面代码。
1 | AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); |
强制关闭夜间模式。
六、Finally
世尊说我见人见众生见寿者见,即非我见人见众生见寿者见,是名我见人见众生见寿者见。
版权声明:本文标题:Android用户面对DayNight主题时的困惑点剖析 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1771300647a3263954.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论