图一,就是普通的textview,在布局中它的宽度是wrap-content,但是想要出第二张图片的效果,需要重新计算宽度。代码如下: class TestTextView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, ) : AppCompatTextView(context, attrs, defStyleAttr) { override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { super.onMeasure(widthMeasureSpec, heightMeasureSpec) val width = ceil(getMaxLineWidth(layout).toDouble()).toInt() val height = measuredHeight setMeasuredDimension(width, height) } private fun getMaxLineWidth(layout: Layout): Float { var maximumWidth = 0.0f val lines = layout.lineCount for (i in 0 until lines) { maximumWidth = layout.getLineWidth(i).coerceAtLeast(maximumWidth) } maximumWidth = layout.getLineWidth(0) return maximumWidth } }