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();
相关推荐
zzq779722 分钟前
Android 风险识别机制实测:从录屏悬浮窗到远程控制的边界评估
android·安全·安卓·app加固·御盾安全
码云数智-园园36 分钟前
MySQL 慢查询排查完整流程
android
码云骑士1 小时前
【Android Performance】进程关联启动治理详解——从唤醒链分析到自启动管控的完整方案
android
心念枕惊2 小时前
PHP 在领域驱动(DDD)设计中的核心实践
android·开发语言·php
蜡台2 小时前
Android WebView 设计指南
android·java·kotlin
晓梦林2 小时前
[Dest0g3 520迎新赛]EasyPHP-学习笔记
android·笔记·学习
朱涛的自习室3 小时前
Munk AI 桌面端「预告」
android·前端·人工智能
程序员正茂3 小时前
Android studio中使用OpenCV C++库
android·c++·opencv·mobile
恋猫de小郭3 小时前
Android R8 为什么可以让 Kotlin 协程提速 2 倍?
android·前端·flutter
李斯维3 小时前
Jetpack UI状态模型 ViewModel 的入门和使用
android·android studio·android jetpack