TextView 无法正确显示 SpannableString

问题描述 投票:0回答:1

我有一个将以编程方式添加的 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
android layout view
1个回答
0
投票

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

val spanPadding = 16 //from your snippet
...
setPadding(spanPadding, paddingTop, spanPadding, paddingBottom)
setShadowLayer(spanPadding.toFloat(), 0f, 0f, Color.TRANSPARENT)
© www.soinside.com 2019 - 2024. All rights reserved.