我有一个将以编程方式添加的 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
您可以使用填充和假阴影层的解决方法来扩大剪切区域,请尝试将以下内容添加到视图中:
val spanPadding = 16 //from your snippet
...
setPadding(spanPadding, paddingTop, spanPadding, paddingBottom)
setShadowLayer(spanPadding.toFloat(), 0f, 0f, Color.TRANSPARENT)