setHintTextColor不生效

背景

有一个定义了文本样式的style

xml 复制代码
<style name="font40">
    <item name="android:textSize">40sp</item>
    <item name="android:lineHeight">56dp</item>
</style>

代码中如下使用

scss 复制代码
setHintTextColor(Color.RED);
setTextAppearance(R.style.font40);

设置之后,会神奇的发现,hintTextColor不生效

原因

问了下豆包,豆包解释如下

查看源码可知,读取的是R.styleable.TextAppearance

找到此style

故可以看到,默认style带有textColorHint,解析之后将原本希望设置的覆盖掉了

解决办法

先setTextAppearance再setHintTextColor

交换下顺序即可

scss 复制代码
setTextAppearance(R.style.font40);
setHintTextColor(Color.RED);

自行解析style(推荐)

只解析自定义的属性,不额外解析

ini 复制代码
TypedArray array = textView.getContext().obtainStyledAttributes(style, new int[]{
        android.R.attr.textSize, android.R.attr.lineHeight});
textView.setTextSize(array.getDimensionPixelSize(0, 0));
textView.setLineHeight(array.getDimensionPixelSize(1, 0));
array.recycle();
相关推荐
进击的cc43 分钟前
面试官:Handler 没消息时为啥不卡死?带你从源码到底层内核彻底整明白!
android·面试
Yang-Never1 小时前
OpenGL ES ->YUV图像基础知识
android·java·开发语言·kotlin·android studio
2501_915921431 小时前
常用iOS性能测试工具大全及使用指南
android·测试工具·ios·小程序·uni-app·cocoa·iphone
晨尘光1 小时前
【Android下载gradle超时解决方法】
android
zhen_hong1 小时前
ReactAgent原理
android·java·javascript
皮皮宋吖1 小时前
皮皮宋渗透日记 11|文件包含漏洞全解析:LFI/RFI/ 伪协议 / 绕过 / 防御
android·安全
阿拉斯攀登2 小时前
【无人售货柜・RK+YOLO】篇 6:安卓端落地!RK3576 + 安卓系统,YOLO RKNN 模型实时推理保姆级教程
android·人工智能·yolo·目标跟踪·瑞芯微·嵌入式驱动
只能是遇见2 小时前
ERROR 1524 (HY000) Plugin ‘mysql_native_password‘ is not loaded
android·数据库·mysql
helloworddm2 小时前
第一篇:设计模式在 Android 视频播放器中的实战应用
android·设计模式·音视频
恋猫de小郭2 小时前
Android 禁止侧载将正式实施,需要等待 24 小时冷静期
android·flutter·harmonyos