8

这是一个例子。

String source = "This is example text";
Spannable out = new SpannedString(source);
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);
out.setSpan(boldSpan, 1, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
out.setSpan(boldSpan, 9, 12, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

//someTextView.setText(out);


预期结果:这是示例文本(“ hi ”和“ xam ”为粗体)
实际结果:这是示例文本(仅适用于最后一个 setSpan 方法,粗体仅为“xam”)


如何制作多跨度文本?这是可能的?
也许问题出在Spannable.SPAN_EXCLUSIVE_EXCLUSIVE标志中?谢谢。

4

2 回答 2

20

我认为每个人都需要一个新的 StyleSpan。

String source = "This is example text";
Spannable out = new SpannedString(source);
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);
StyleSpan boldSpan2 = new StyleSpan(Typeface.BOLD);
out.setSpan(boldSpan, 1, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
out.setSpan(boldSpan2, 9, 12, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

不过还没试过。

于 2012-09-26T13:49:14.877 回答
0

原因是每个粗体可跨文本必须由StyleSpan. 您的原因与重新分配值相同。

于 2013-04-19T00:30:36.830 回答