2016-07-23 539 views
1

我想将多个跨度添加到带有可配置行距的textview。我使用android中定义的LineHeightSpan类。但现在看来,这行为不同版本的Android M和更低版本 在这里,结果在Android的Android M及更低版本中的LineHeightSpan

enter image description here

的低版本,这是它看起来像在版本的Android M enter image description here

下面是我在代码实现: 这是我实现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); 

我该如何解决这个问题?

回答

3

如果您有Marshmallow v6.0我担心在这种情况下您不能做任何事情,因为它报告的错误Here。你要么有,因为它已被固定在该版本将设备升级到v6.0.1或有条件从棉花糖6.0

编辑删除你的逻辑:更多参考check this.

+1

我解决版本的Android M这个问题通过添加字体间距到textview而不是应用LineHeightSpan。你节省了我的时间。谢谢。 – Hojjat

相关问题