7

我使用 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;
  }
 }

问题是,一旦文本中出现一个段落,就会给这一行一个不需要的边距。我想限制将getLeadingMargin()实际边距返回到构造函数内部传递的行数的次数。

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

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

4

0 回答 0