android TextView未正确显示SpannableString

xzv2uavs  于 2023-10-14  发布在  Android
关注(0)|答案(1)|浏览(114)

我有一个将以编程方式添加的TextView。出于设计目的,此TextView应使用SpannableString。当添加视图时,跨度的左右两侧不能正确显示,因为它们比TextView大,而TextView被忽略。
我该如何解决这个问题?
这是我使用的BackgroundColorSpan:https://stackoverflow.com/a/60295758/14082516
然后我将它添加到视图中,代码如下:

val backgroundColorSpan = BackgroundColorSpan(Color.BLACK, 16, 10)
        val spannableString = SpannableString(text)
        if (text != null) {
            spannableString.setSpan(
                backgroundColorSpan,
                0,
                text.length,
                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
            )
        }

        this.text = spannableString
a64a0gku

a64a0gku1#

您可以使用填充和假阴影层的解决方案来扩展剪切区域,请尝试将以下内容添加到视图中:

val spanPadding = 16 //from your snippet
...
setPadding(spanPadding, paddingTop, spanPadding, paddingBottom)
setShadowLayer(spanPadding.toFloat(), 0f, 0f, Color.TRANSPARENT)

相关问题