在TextView中使用SpannableStringBuilder的段落间距

Ram*_*ain 6 android textview spannablestring spannable

正如问题所示,我正在研究一个TextView将使用的格式化文本SpannableStringBuilder.它有多个段落,我想知道使用一些内置跨度设置段落间距的最简单(或至少是最简单的)方法.这可能吗?或者我是否需要为此构建自定义span类?

Dur*_*s S 8

实现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;
    }
}
Run Code Online (Sandbox Code Playgroud)

不要忘记\n在每个段落文本的末尾添加.

  • 注意:如果在EditText中使用此范围,这也会影响光标高度. (2认同)