Paragraph spacings using SpannableStringBuilder in TextView

吃可爱长大的小学妹 提交于 2019-12-08 23:56:36

问题


As the question indicates, I am working on a TextView which will show formatted text using SpannableStringBuilder. It has multiple paragraphs and I would like to know what would be the easiest (or at least the least complicated) way to set spacing between paragraphs using some inbuilt span. Is this possible? Or will I be required to build a custom span class for this?


回答1:


Implement the LineHeightSpan and override chooseHeight method as follows

@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;
    }
}

Don't forget to add \n at the end of your each paragraph text.



来源:https://stackoverflow.com/questions/25776082/paragraph-spacings-using-spannablestringbuilder-in-textview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!