0

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

所以我想知道是否可以以任何方式将一个SpannableStringBuilder对象插入另一个对象,或者如果我需要在其中插入格式化文本,SpannableStringBuilder我是否必须重建完整的对象?SpannableStringBuilder

4

1 回答 1

0

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

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

如果 source 是 Spanned,则它的 span 将保留到 Editable

所以它应该工作。

但是,它似乎仅在 dest 尚未包含源尝试插入的跨度时才有效。看到这个评论:

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

在 SpannableStringBuilder.java

我不确定为什么它是用这个约束来实现的。

于 2019-01-17T12:06:58.297 回答