EditText行间距奇怪的行为

10

我有一个EditText,其中lineSpacingExtra设置为8dp。当我打开一个带有此EditText和预设文本的页面时,行间距工作正常。但是,当我在同一页上单击EditText的末尾并开始输入时,似乎忽略了行间距。

这是一个错误还是我漏了什么?

进入图像描述

添加了代码片段。我认为它没有什么特别之处。

<EditText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/transparent"
        android:padding="8dip"
        android:scrollbars="vertical"
        android:fadingEdge="vertical"
        android:gravity="top"
        android:lineSpacingExtra="8dip"
        android:lineSpacingMultiplier="2"
        android:textSize="18sp"
        android:capitalize="sentences"
        android:inputType="textCapSentences|textMultiLine"
        />

更新:看起来这个bug是随着Android 5的棒棒糖版本一起出现的


也许你可以发布你的布局代码,这样我们就可以检查你设置了什么! - axl coder
3
似乎已经有人发布了一个错误报告:https://code.google.com/p/android/issues/detail?id=78706。 - khusrav
你解决这个问题了吗?我也遇到了同样的问题。 - Bart Bergmans
@BartBergmans,其他人在错误报告中提出了几种解决方法,但它们都会导致各种故障,所以我暂时只删除了行间距。 - khusrav
这是我发现的解决方法;非常粗糙,但对我来说似乎有效:https://code.google.com/p/android/issues/detail?id=78706#c17 - Actine
2个回答

1

0
我分享我的代码。Kotlin.
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
    val added = count - before > 0 // blocking EditText#setText() when user remove text

    val startChar = if (start > 0) s[start - 1] else null
    if (startChar == '\n' && added) {
        val selectionStart = editText.selectionStart
        editText.setText(s)
        editText.setSelection(selectionStart)
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接