我想在具有可配置行空间的textview中添加多个span。我使用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);
我如何解决问题?
答案 0 :(得分:4)
如果你有Marshmallow v6.0
,我担心在这种情况下你无法做任何事情,因为它报告了Here。您必须将设备升级到v6.0.1
,因为该版本已在该版本中修复或有条件地从Marshmallow 6.0中删除您的逻辑
编辑以获取更多参考资料check this.