我想向具有可配置行间距的 TextView 添加多个跨度。我使用 android 中定义的 LineHeightSpan 类。但在 Android M 及更低版本中它的表现似乎有所不同 这是低版本 Android 下的结果
这是我在代码中实现的方法: 这是我的 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
,因为该版本已修复该问题,或者有条件地从 Marshmallow 6.0 中删除您的逻辑
编辑:以获取更多引用 check this.
关于android - Android M 及更低版本中的 LineHeightSpan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38542417/