【问题标题】:Change textsize in afterTextChanged在 afterTextChanged 中更改文本大小
【发布时间】:2018-11-14 22:10:18
【问题描述】:

有一个宽度固定的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 循环中)。

但是当我一个一个地输入单词时,出现了一个奇怪的错误。

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

现在我输入另一个字符 K.

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

【问题讨论】:

  • 我只是好奇val paint =你在用一些js吗?
  • edit_text.setTextSize(COMPLEX_UNIT_PX, textSize) 移到 while 循环中
  • 我认为你不需要 while 循环在那里,因为 afterTextChange 应该是文本更改后触发的事件
  • 我只是不确定你使用的是 JS >.
  • 大声笑,我使用的是 Kotlin insetead of js。

标签: android textview


【解决方案1】:

android:inputType="text" 为我工作。但我不知道为什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-04
    • 2015-05-20
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 2021-07-16
    相关资源
    最近更新 更多