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();
相关推荐
三金1213824 分钟前
深入解析MySQL EXPLAIN
android
_李小白28 分钟前
【Android 美颜相机】第十一天:GPUImageFilter解析
android·数码相机
dawudayudaxue38 分钟前
sqlite在安卓下使用ndk的交叉编译
android·数据库·sqlite
YIN_尹38 分钟前
【MySQL】表的约束(下)
android·数据库·mysql
爱编码的傅同学42 分钟前
【线程的同步与互斥】初识互斥量与锁
android·java·开发语言
_李小白1 小时前
【Android 美颜相机】第十天:YUV420SP和RGB
android·数码相机
2501_944526421 小时前
Flutter for OpenHarmony 万能游戏库App实战 - 收藏功能实现
android·java·开发语言·javascript·python·flutter·游戏
2501_944526421 小时前
Flutter for OpenHarmony 万能游戏库App实战 - 个人中心实现
android·java·javascript·python·flutter·游戏
Jomurphys1 小时前
Kotlin - 引用操作符 ::
android·kotlin
恋猫de小郭1 小时前
Meta ShapeR :基于随机拍摄视频的 3D 物体生成,未来的 XR 和机器人基建支持
android·flutter·3d·ai·音视频·xr