要集中注意力,您可以使用此功能
editText.requestFocus()
你可以有两个不同的问题EditText
。一个是EditText
会集中但键盘不会打开,所以正如其他答案所说,你必须手动打开键盘。其他问题EditText
根本不会集中,意味着什么也没发生。
要打开键盘,您可以在以下操作后执行此操作requestFocus
:
val manager = context.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager
manager?.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0)
如果EditText
根本不关注此属性。EditText
必须是可聚焦的、可见的、启用的、focusableInTouchMode。在调用之前启用所有这些requestFocus
。
this.isFocusable = true
this.isFocusableInTouchMode = true
this.visibility = View.VISIBLE
this.isEnabled = true
最后,您可以使用此 kotlin 扩展为您完成所有这些操作:
fun EditText.focus() {
this.isFocusable = true
this.isFocusableInTouchMode = true
this.visibility = View.VISIBLE
this.isEnabled = true
this.isCursorVisible = true
this.post {
(this.context as? Activity)?.runOnUiThread {
this.requestFocus()
val manager =
this.context.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager
manager?.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0)
}
}
}