Android Studio(Kotlin):get/setPaintFlags方法未找到问题咨询
解决Kotlin中TextView paintFlags方法标红的问题
首先,你遇到的getPaintFlags()和setPaintFlags()标红的问题,是因为Kotlin对Java的Bean风格方法做了语法糖转换:Android的TextView类在Java里的getPaintFlags()和setPaintFlags()方法,在Kotlin中会被自动转换为paintFlags属性,所以直接调用get/set方法会被IDE提示找不到。
正确的写法示例
添加下划线效果
如果你想给TextView添加下划线,直接使用属性访问+位或运算即可:
title.paintFlags = title.paintFlags or Paint.UNDERLINE_TEXT_FLAG
这里的or是Kotlin的位或运算符,对应Java中的|,作用是把下划线标记追加到现有的绘制标记中,不会覆盖原有flags。
移除下划线效果
如果是要移除下划线(你尝试用inv()的场景),需要用位与+按位取反的组合,而不是or:
title.paintFlags = title.paintFlags and Paint.UNDERLINE_TEXT_FLAG.inv()
Paint.UNDERLINE_TEXT_FLAG.inv()会把该标记位转为0,其他位转为1,再和原flags做位与运算,就能精准清除下划线标记,同时保留其他原有flags。
额外注意事项
- 确保
title变量确实被声明为TextView类型,没有误定义成其他View子类; - 确认你导入的是正确的包:
import android.graphics.Paint,不要导错其他同名类。
内容的提问来源于stack exchange,提问作者TattooedJoey
相关产品推荐
相关产品推荐

