fun setContent(content: String?) {
data.content = content
contentTv?.apply {
//比较是否超出了一行
post {
paint.textSize = textSize
val exceedOneLine = paint.measureText(content) > width
setLines(if (exceedOneLine) 2 else 1)
}
}
contentTv?.text = content
}
有什么用?
譬如UI设计固定高度且要TextView居中对齐且不能超过2行时,因为文本长度不确定,此时就无法确定使用1行还是2行,进而就较难实现居中效果。因此,只要动态设置行数就能解决该问题。

当UI设计需要TextView保持固定高度并居中显示,但文本长度不确定时,可能无法预知应使用一行还是两行。此代码片段通过动态测量文本宽度,判断是否超过一行,并据此设置TextView的行数,从而确保内容始终居中且不超过两行。
318





