TextView
我在使用的中间添加了一张图片ImageSpan
但有时文本会将最后一个单词换行到下一行。最后一个词与图标分开显示,图标应该与文本一起显示。
例如: 这里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
作为占位符,但这无济于事