You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:51:57