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();
相关推荐
洞窝技术4 小时前
从0到30+:智能家居配网协议融合的实战与思考
android
QING6184 小时前
SupervisorJob子协程异常处理机制 —— 新手指南
android·kotlin·android jetpack
毕设源码-朱学姐5 小时前
【开题答辩全过程】以 基于安卓的停车位管理系统与设计为例,包含答辩的问题和答案
android
PWRJOY5 小时前
解决Flutter构建安卓项目卡在Flutter: Running Gradle task ‘assembleDebug‘...:替换国内 Maven 镜像
android·flutter·maven
王家视频教程图书馆6 小时前
android java 开发网路请求库那个好用请列一个排行榜
android·java·开发语言
花卷HJ6 小时前
Android 文件工具类 FileUtils(超全封装版)
android·java
Fate_I_C7 小时前
Kotlin 中的 suspend(挂起函数)
android·开发语言·kotlin
花卷HJ7 小时前
Android 下载管理器封装实战:支持队列下载、取消、进度回调与自动保存相册
android·java
凡小烦7 小时前
看完你就是古希腊掌管Compose输入框的神!!!
android·kotlin