我使用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()
将实际边距返回到构造函数内传递的行数的次数。
我已经尝试计算这个保证金返回的次数并将其与行数进行比较,但是这不起作用(在大多数情况下没有应用保证金,在某些情况下它应用于错误的数字) ()。
是否有人针对此问题采取了解决方法?