1

TextView我在使用的中间添加了一张图片ImageSpan

my_textview.png

但有时文本会将最后一个单词换行到下一行。最后一个词与图标分开显示,图标应该与文本一起显示。

例如: 这里6470.3 mi 和位置图标应该在一起

有可能修复它吗?

我的代码:

                val title = venue?.name + (if (!venue?.venue_name_indicator.isNullOrEmpty()) " - ${venue?.venue_name_indicator}" else "")

                val span = SpannableStringBuilder(title)
                if(venue?.distance != null && venue.distance.isNotEmpty()) {
                    val icon = ContextCompat.getDrawable(context, R.drawable.ic_location)
                    icon?.setBounds(0, 0, 32, 32)
                    icon?.setTint(ContextCompat.getColor(context, R.color.text_color_secondary))

                    span.append(" ")
                        .appendImage(icon!!)
                        .appendColor(context, context.getString(R.string.distance, venue.distance), R.color.text_color_secondary)
                }
                span.setSpan(StyleSpan(Typeface.BOLD), 0, title.length, Spannable.SPAN_INCLUSIVE_INCLUSIVE)
                venue_title?.text = span

方法追加图像():

fun SpannableStringBuilder.appendImage(
    image: Drawable
): SpannableStringBuilder {
    val index = length
    append("\\u00A0")
    setSpan(ImageSpan(image), index, length, Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
    return this
}

如您所见,我使用不可破坏的空间\\u00A0作为占位符,但这无济于事

4

0 回答 0