在afterTextChanged中更改文本大小

时间:2018-06-05 12:12:39

标签: android textview

有一个EditText,其宽度是固定的,maxLines = 1。我希望在文本长度增加时更改文本大小。

override fun afterTextChanged(s: Editable?) {
    val paint = edit_text.paint
    var textSize = edit_text.textSize
    var newWidth = paint.measureText(s.toString())
    while (newWidth >= edit_text.width) {
        textSize -= 1
        paint.textSize = textSize
        newWidth = paint.measureText(s.toString())
    }
    edit_text.setTextSize(COMPLEX_UNIT_PX, textSize)
}

如您所见,当newWidth大于width时,我会搜索新的textSize(在while循环中)。

然而,当我逐个输入单词时,会出现一个奇怪的错误。

如您所见,现在文本已成为上限。

enter image description here

现在我输入另一个字符 K

enter image description here

我也不知道为什么新的字母单独出现。

1 个答案:

答案 0 :(得分:0)

android:inputType="text"适合我。但我不知道为什么。