5
如問題所示,我正在使用TextView
,它將使用SpannableStringBuilder
顯示格式化文本。它有多個段落,我想知道使用一些內置跨度來設置段落間距的最簡單(或至少是最簡單的)方法。這可能嗎?或者我會被要求爲此建立一個自定義跨班級嗎?在TextView中使用SpannableStringBuilder的段間距
如問題所示,我正在使用TextView
,它將使用SpannableStringBuilder
顯示格式化文本。它有多個段落,我想知道使用一些內置跨度來設置段落間距的最簡單(或至少是最簡單的)方法。這可能嗎?或者我會被要求爲此建立一個自定義跨班級嗎?在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
。
如果你能爲Xamarin提供'ILineHeightSpan'的實現,我會墜入愛河。 – Lara 2016-07-12 23:21:21
注意:如果您在EditText中使用此跨度,這也會影響遊標高度。 – Sver 2017-01-27 08:09:25
TOP_SPACING和BOTTOM_SPACING密度是否獨立? – BornToCode 2017-11-06 16:48:45