EditText lineSpacingExtra奇怪的行为

时间:2014-12-11 11:29:58

标签: android android-edittext line android-5.0-lollipop

我有一个EditText,lineSpacingExtra设置为8dp。当我用这个EditText和预设文本打开一个页面时,行间距很好。但是当我在同一页面点击EditText的末尾并开始输入时,行间距似乎被忽略了。

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

enter image description here

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

<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"
        />

更新:看起来这个错误来自 Android 5 Lollipop

2 个答案:

答案 0 :(得分:1)

这是一个已发布的错误:https://issuetracker.google.com/issues/37009353,我找到了一个修复方法:只有在最后一行输入时才会出现此错误,因此您可以在最后一行附加一个空行。< / p>

答案 1 :(得分:0)

我分享我的代码。科特林。

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)
    }
}