我有两个spannable
对象用于同一字符串,并且都有不同的样式。我需要合并所有spannable
对象并将所有样式显示到TextView
中。
从Html.fromHtml()
返回和第二个返回样式span(粗体)之一返回。
我尝试了TextUtils.concate(htmlSpan, boldSpan)
但它显示了同一个字符串两次,因为它附加了spannable
,我想将所有样式显示为单个字符串。
最佳答案
使用SpannableStringBuilder
但是可以在append
方法中创建跨距
SpannableStringBuilder sb = new SpannableStringBuilder();
sb.append(String.valueOf(Html.fromHtml(stringToConvert));
sb.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, sb.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
然后将
sb
设置为您的视图textView.setText(sb);
编辑:
我看到你编辑过的问题,上面我重写了这段代码,让它在一个字符串上应用两个spannable。我认为不能在一个字符串上合并不同的可扩展对象。我认为一种解决方法是应用一个跨距,然后转换为字符串,然后应用第二个跨距。这样它将对一个字符串应用两个跨距。或者,如果您总是需要粗体文本,可以通过xml来管理粗体文本类型