我使用StaticLayout处理我的文本,然后在TextView.But中显示,当我调用StaticLayout的getHeight来获得处理的文本高度时,它小于文本视图的真实高度。以下是核心代码:
private fun createStaticLayout(text: SpannableStringBuilder): StaticLayout {
val width = measuredWidth - paddingLeft - paddingRight
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
StaticLayout.Builder.obtain(text, 0, text.length, paint, width)
.setAlignment(Layout.Alignment.ALIGN_NORMAL)
.setIncludePad(includeFontPadding)
.setLineSpacing(lineSpacingExtra, lineSpacingMultiplier)
.build()
} else {
StaticLayout(
text,
paint,
width,
Layout.Alignment.ALIGN_NORMAL,
lineSpacingMultiplier,
lineSpacingExtra,
includeFontPadding
)
}
}
text = tempText2
layoutParams.height = tempLayout.height + paddingTop + paddingBottom
requestLayout()这是日志信息:
staticLayoutHeight -> 237
lineHeight -> 46
textViewheight -> 277
textSize -> 39.0
destiny -> 2.625发布于 2020-09-08 11:08:56
您的手机是华为吗?我发现vivo是对的,但华为需要包装
val heightByStaticLayout: Float = heightByStaticLayoutOrigin - (if (staticLayout.lineCount <= 1) 0f else ((staticLayout.lineCount - density) * density))https://stackoverflow.com/questions/62652978
复制相似问题