Android 禁止应用颜色跟随深色模式设置

总结解决方法:自己用的是<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">,需要修改为<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

在系统设置为深色模式后,发现应用中的部分文字从默认颜色变为了白色,CardView从白色变成了黑色(大多数文字和组件颜色没有变化),丑到爆了

很容易发现有变化的文字是因为没有设置textcolor,于是给他们加上之后,又给所有的cardview设置了background,但是发现文字不会改变,但cardview依然会变成深色。。

赶紧看了一下文档https://developer.android.google.cn/guide/topics/ui/look-and-feel/darktheme,希望能有禁用深色模式的方法,但根据文档里的意思,应用应该默认不会跟随系统的深色模式呀,只有手动设置后才会跟随深色模式。

在应用中支持深色主题背景
如要支持深色主题背景,您必须将应用的主题背景(通常可在 res/values/styles.xml 中找到)设置为继承 DayNight 主题背景:
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
您还可以使用 MaterialComponent 的深色主题背景:
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
这会将应用的主要主题背景与系统控制的夜间模式标记相关联,并将应用的默认主题背景设置为深色主题背景(如果已启用)。

去看了一下styles文件,果然被设置过了
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
修改了一下
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
再次运行,发现没有作用,Cardview依旧会跟随深色。。公司的项目被几个人修改过,各种配置已经比较乱了,也不敢乱改,切到自己的demo试了一下,发现默认的应用是不会跟随深色模式的,经过对比才发现,demo的styles是
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
修改后,终于解决问题了。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值