我使用 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()
实际边距返回到构造函数内部传递的行数的次数。
我试图计算这个边距返回了多少次,并将它与行数进行比较,但这不起作用(在大多数情况下,没有应用边距,在某些情况下,它被应用于错误的行数) .
有没有人有解决这个问题的方法?