首页 > 解决方案 > 如何将跨度应用于整个 Spannable 字符串

问题描述

我到处都只看到这些方式:

text[0..3] = AlignmentSpan.Standard(Layout.Alignment.ALIGN_OPPOSITE)

或使用 setSpan,但我只能使用一些限制(开始和结束索引)。

然后我尝试了这个:

text[text.indices] = AlignmentSpan.Standard(Layout.Alignment.ALIGN_OPPOSITE)

它有效,但它不包括最后一个字符。

如何将跨度应用于整个 Spannable 字符串?

标签: androidkotlin

解决方案


您必须使用setSpan和定义第一个和最后一个索引。

val span = AlignmentSpan.Standard(Layout.Alignment.ALIGN_OPPOSITE)
text.setSpan(span, 0, text.length, 0)

并且因为AlignmentSpan是 aParagraphStyle它必须应用于整个文本块(可以由换行符分割\n)。


推荐阅读