如问题所示,我正在开发一个 TextView
,它将使用 SpannableStringBuilder
显示格式化文本。它有多个段落,我想知道使用一些内置跨度设置段落间距的最简单(或至少最不复杂)的方法是什么。这可能吗?或者我需要为此构建一个自定义跨度类吗?
最佳答案
实现 LineHeightSpan
并覆盖 chooseHeight
方法,如下所示
@Override
public void chooseHeight(CharSequence text, int start, int end,
int spanstartv, int v, FontMetricsInt fm) {
Spanned spanned = (Spanned) text;
int st = spanned.getSpanStart(this);
int en = spanned.getSpanEnd(this);
if (start == st) {
fm.ascent -= TOP_SPACING;
fm.top -= TOP_SPACING;
}
if (end == en) {
fm.descent += BOTTOM_SPACING;
fm.bottom += BOTTOM_SPACING;
}
}
不要忘记在每个段落文本的末尾添加 \n
。
关于android - 在 TextView 中使用 SpannableStringBuilder 的段落间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25776082/