Android M及更低版本中的LineHeightSpan
问题描述:
我想将多个跨度添加到带有可配置行距的textview。我使用android中定义的LineHeightSpan类。但现在看来,这行为不同版本的Android M和更低版本 在这里,结果在Android的Android M及更低版本中的LineHeightSpan
下面是我在代码实现: 这是我实现LineHeightSpan的:
public class VerticalMarginSpan implements LineHeightSpan {
private final int value;
public VerticalMarginSpan(int value) {
this.value = value;
}
@Override
public void chooseHeight(CharSequence text, int start, int end, int spanstartv, int v,
Paint.FontMetricsInt fm) {
fm.ascent -= value/2;
fm.descent += (value/2);
}
}
我如何使用它:
SpannableStringBuilder builder = new SpannableStringBuilder(tempStr);
builder.setSpan(
new VerticalMarginSpan(lineSpace),
0,
tempStr.length(),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
txt.setText(builder);
我该如何解决这个问题?
答
如果您有Marshmallow v6.0
我担心在这种情况下您不能做任何事情,因为它报告的错误Here。你要么有,因为它已被固定在该版本将设备升级到v6.0.1
或有条件从棉花糖6.0
编辑删除你的逻辑:更多参考check this.
我解决版本的Android M这个问题通过添加字体间距到textview而不是应用LineHeightSpan。你节省了我的时间。谢谢。 – Hojjat