我有一个EditText,我想在行之间留出更大的空间,但只有当用户通过按返回创建一个新行时。 当文本自行返回时,我不希望空间变大,因为行太长了。
我尝试使用lineSpacingExtra
,但不幸的是它在两种情况下都改变了行高。
感谢您的帮助。
答案 0 :(得分:0)
您可以附加TextWatcher并从提供的回调中处理您的逻辑。
使您的活动/片段实现TextWatcher。
实施回调。
在您的activity / fragment中保留一个布尔变量,以指示行间距是否为“#”状态。
@posts = Post.where("created_at > ?", Time.now.beginning_of_month)
答案 1 :(得分:0)
我找到了一种使用跨度的方法。 每当我检测到插入的“\ n”(使用TextWatcher)时,我用TopPaddedSpan包装我的新行。
class TopPaddedSpan implements LineHeightSpan {
private boolean initialised = false;
private int originalAscent;
private int increasedAscent;
@Override
public void chooseHeight(CharSequence text, int start, int end, int spanstartv, int v, Paint.FontMetricsInt fm) {
if (!initialised) {
originalAscent = fm.ascent;
increasedAscent = Math.round(fm.ascent * 1.6f);
initialised = true;
}
if (spanstartv == v) { // First drawn line
fm.ascent = increasedAscent;
} else { // Any other lines
fm.ascent = originalAscent;
}
}
}
希望它会对某人有所帮助