Android 更改后文本更改中的文本大小
有一个宽度固定且Android 更改后文本更改中的文本大小,android,textview,Android,Textview,有一个宽度固定且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)
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
时,我将搜索一个新的文本大小(在while循环中)
然而,当我一个接一个地输入单词时,出现了一个奇怪的错误
如您所见,现在文本已成为上限
现在我输入另一个字符
K
我也不明白为什么新字符会单独出现 android:inputType=“text”适合我。但是我不知道为什么。我只是好奇
val paint=
你在使用一些js吗?移动这个编辑文本。setExtSize(复杂单位,textSize)
在while循环中,我想你不需要while循环,因为后文本更改应该是文本更改后触发的事件,我只是不确定你在使用js>。哈哈,我使用的是js的Kotlin instead。