我有一个SpannableStringBuilder对象,它对它的文本应用一些格式化。现在我想在这个对象中插入另一个格式化的字符串。我可以看到SpannableStringBuilder有一个insert()方法,但是它只接受一个不允许我应用任何文本格式的CharSequence。
因此,我想知道是否可以以任何方式将一个SpannableStringBuilder对象插入到另一个SpannableStringBuilder对象中,或者如果我需要向其中插入格式化文本,是否必须重新构建完整的SpannableStringBuilder对象?
发布于 2019-01-17 20:06:58
您的意思是目的和源SpannableStringBuilders都连接了spans,对吗?
insert()在内部使用的SpannableStringBuilder.replace()表示
如果源是跨区的,则其中的跨度将保留到可编辑的
所以它应该是可行的。
然而,它似乎只有在dest还没有包含源试图插入的跨度的情况下才能工作。请参阅此评论:
//仅当此对象在此字符串中尚未用作跨度时才添加span
在SpannableStringBuilder.java中
我不确定为什么要用这个约束来实现它。
https://stackoverflow.com/questions/50972793
复制相似问题