type
status
date
slug
summary
tags
category
icon
password
在做app的搜索的功能时,需要对搜索结果匹配的字符进行高亮处理,这个高亮是后端实现的,后端会给我们传一个html格式的字符串,我们通过
Html.fromHtml()
将字符串转换为一个Spanned
对象。最后,我们将这个Spanned
对象设置为TextView
的文本。下面是简单用法:开发中遇到了高亮标签挨着空格的情况,这个空格有全角有半角的,
Html.fromHtml()
会将这些空格合并,这样段落显示就有问题,最简单的想法是将字符串中的空格替换成 但这样并不生效,显示还是有问题。最终实现的代码如下函数的主要步骤如下:
- 使用
replace
方法将全角空格(" ")替换为无意义的临时字符串("\u2007")。
- 使用
Html.fromHtml
方法将替换后的字符串解析为带有HTML样式的文本。
- 创建一个
SpannableStringBuilder
对象,并将解析后的文本作为初始文本。
- 使用
while
循环和indexOf
方法找到临时字符串在SpannableStringBuilder
对象中的位置。
- 使用
replace
方法将找到的临时字符串替换为全角空格。
- 当
indexOf
方法返回 -1 时,表示没有找到更多的临时字符串,此时结束循环。
- 作者:LuluNotion
- 链接:https://tangly1024.com/article/work-fromhtml
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章