多次设置跨度

Lei*_*yba 3 android

我试图在一个可跨度的字符串上设置两个跨度,但唯一出现的是后一个。由于索引问题,我期待第一个出现,但第二个却出现了。第二组跨度是否会覆盖第一组跨度?我看到他们声称有效的样品,不知道为什么我的没有。这是片段。谢谢!

String targetStr = "target1";
String targetStr2 = "target2";
String str = "Lorem ipsum target1 dolor target2 sit amet";
Drawable icon = getResources().getDrawable(R.drawable.img);
icon.setBounds(0, 0, textView.getLineHeight(), textView.getLineHeight());
ImageSpan is = new ImageSpan(icon);
SpannableString text = new SpannableString(str);
int indOf = str.indexOf(targetStr);
int lenOf = targetStr.length();
text.setSpan(is, indOf, indOf + lenOf, 0);
int indOf1 = str.indexOf(targetStr2);
int lenOf1 = targetStr2.length();
text.setSpan(is, indOf1, indOf1 + lenOf1, 0);
textView.setText(text);
Run Code Online (Sandbox Code Playgroud)

答案:哈哈。那么蠢。答案是您只能使用 ImageSpan 一次,所以我必须设置另一个图像跨度,即使它具有相同的值。

Lei*_*yba 6

哈哈。那么蠢。答案是您只能使用 ImageSpan 一次,所以我必须设置另一个图像跨度,即使它具有相同的值。

  • 谢谢。我已经实例化了一个 `for` 循环的新跨度 _outside_,并试图在每次迭代时将它设置为不同的子字符串,我很困惑为什么跨度只应用于最终迭代的子字符串。一旦我移动了 `for` 循环的 span 实例化 _inside_,它就像一个魅力。 (3认同)