我想在(可能的)多行 TextView 的最后一个单词之后找到一个视图。
例如,TextView 可能有两行,第二行的长度约为 TextView 宽度的一半。如何在最后一个单词之后找到视图。
我还想在该图标上附加一个点击侦听器。我正在使用数据绑定。
我尝试过 Spannabale 字符串。
试试这个:
val targetText = "A quick brown fox jumps over \n the lazy dog"
val text: SpannableStringBuilder = SpannableStringBuilder(targetText)
val drawable: Drawable = ContextCompat.getDrawable(this, R.mipmap.ic_launcher)!!
drawable.setBounds(0, 0, 50, 50)
//ImageSpan.ALIGN_BASELINE; ImageSpan.ALIGN_BOTTOM; ImageSpan.ALIGN_CENTER;
val imageSpan: ImageSpan = ImageSpan(drawable, ImageSpan.ALIGN_BASELINE)
val clickSpan: ClickableSpan = object : ClickableSpan() {
override fun onClick(widget: View) {
Toast.makeText(this@TestActivity, "click icon", Toast.LENGTH_SHORT).show()
}
}
val len: Int = text.length
text.append("\uFFFC")
text.setSpan(imageSpan, len, text.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
text.setSpan(clickSpan, len, text.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
mViewBinding.tv.highlightColor = ContextCompat.getColor(this, android.R.color.transparent)
mViewBinding.tv.movementMethod = LinkMovementMethod.getInstance()
mViewBinding.tv.text = text
mViewBinding.tv.setOnClickListener {
Toast.makeText(this@TestActivity, "click text", Toast.LENGTH_SHORT).show()
}
这是你的愿望吗?