LeadingMarginSpan2 - 如何限制带边距的段落数

Dro*_*man 7 android leadingmarginspan2

我使用a的基本和非常常见的实现LeadingMarginSpan2来围绕图像包装文本(因为它似乎是最简单的方法,请不要建议我WebView在此时使用s):

  public class MyLeadingMarginSpan2 implements LeadingMarginSpan.LeadingMarginSpan2 {

  private int margin;
  private int lines;

  public MyLeadingMarginSpan2(int lines, int margin) {
    this.margin = margin;
    this.lines = lines;
  }


  @Override
  public int getLeadingMargin(boolean first) {
    return first ? margin : 0; // <--- the issue is here
  }


  @Override
  public void drawLeadingMargin(Canvas c, Paint p, int x, int dir,
                              int top, int baseline, int bottom, CharSequence text,
                              int start, int end, boolean first, Layout layout) {
  }


  @Override
  public int getLeadingMarginLineCount() {
    return lines;
  }
 }
Run Code Online (Sandbox Code Playgroud)

问题是,只要文本中出现一个段落,就会给该行留下不必要的余量.我想限制getLeadingMargin()返回实际边距的次数与构造函数内传递的行数.

我试图计算这个保证金返回的次数并将其与行数进行比较,但是这不起作用(在大多数情况下没有应用保证金,在某些情况下它应用于错误的行数) .

有没有人有解决这个问题的方法?