在 EditText 中监听文本变化,并重设光标位置。
示例代码:
首先,定义一个 TextWatcher 对象:
val textWatcher = object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { // do nothing }
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
// do nothing
}
override fun afterTextChanged(s: Editable?) {
// 重设光标位置
editText.setSelection(s?.length ?: 0)
}
}
然后,在 EditText 中添加该 TextWatcher 对象:
editText.addTextChangedListener(textWatcher)
这样,每当文本发生变化时,就会重设光标位置,从而避免光标跳动的问题。