将SpannableStringBuilder插入另一个SpannableStringBuilder

时间:2018-06-21 15:51:53

标签: android textview spannablestring spanned

我有一个SpannableStringBuilder对象,该对象对其文本应用了某些格式。现在,我想在该对象中插入另一个格式化的字符串。我可以看到SpannableStringBuilder有一个insert()方法,但是它只接受一个CharSequence,不允许我应用任何文本格式。

所以我想知道是否有可能以任何方式将SpannableStringBuilder对象插入另一个SpannableStringBuilder对象,或者是否需要重建完整的SpannableStringBuilder对象?格式化文本吗?

1 个答案:

答案 0 :(得分:0)

您的意思是目标SpannableStringBuilders和源SpannableStringBuilders都附加了跨度,对吧?

SpannableStringBuilder.replace()-内部使用的insert()-说

  

如果源是Spanned,则源的跨度将保留到   可修改

所以它应该工作。

但是,它似乎仅在dest还不包含源试图插入的跨度时才起作用。看到此评论:

//仅当该对象尚未用作该字符串的跨度时才添加跨度

在SpannableStringBuilder.java

我不确定为什么要在这种约束下实现它。