在Android TextView Kotlin绝种奇怪行为上应用Multipe样式

时间:2019-09-10 10:03:50

标签: android kotlin spannablestring

您好,我有此扩展程序,可以将样式应用于目标单词,但是如果由于某种原因我发送多个单词,我在示例项目中进行了测试,效果很好。.任何人都可以提供帮助我吧。

fun String.applySpans(vararg pairs: Pair<String, Any> ): Spannable {
   val spannable = SpannableStringBuilder(this)
   pairs.forEach {
        val start = this.indexOf(it.first)
        val end = start + it.first.length
        spannable.setSpan(it.second, start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE)
    }
    return spannable
}

这是测试样本中的工作版本

val bold = StyleSpan(Typeface.BOLD)
        val italic = StyleSpan(Typeface.BOLD_ITALIC)
        val string = getString(R.string.hello_message, "John", "Wick")
        testTextView.text = string.applySpans(mapOf(
                "John" to bold,
                "Wick" to italic
            )
        )

这是有问题的代码

val message = getString(R.string.not_delivery_to_this_area, searchError.restaurant, searchError.area)
              searchErrorView.errorMessage.text = message.applySpans(
                     searchError.restaurant to bold,
                   searchError.area to bold
             )

0 个答案:

没有答案