Android 关闭/隐藏kotlin中的软输入键盘
我有一个按钮和编辑文本。当用户在edittext中完成输入并按下按钮时,我想关闭软键盘Android 关闭/隐藏kotlin中的软输入键盘,android,keyboard,kotlin,Android,Keyboard,Kotlin,我有一个按钮和编辑文本。当用户在edittext中完成输入并按下按钮时,我想关闭软键盘 或其任何指南或参考链接。调用此函数可隐藏系统键盘: fun View.hideKeyboard() { val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager imm.hideSoftInputFromWindow(windowToken, 0) } 我稍微修改了@Serj
或其任何指南或参考链接。调用此函数可隐藏系统键盘:
fun View.hideKeyboard() {
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(windowToken, 0)
}
我稍微修改了@Serj Ardovic的反应
private fun hideKeyboard(view: View) {
view?.apply {
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(view.windowToken, 0)
}
}
由于它确实符合我的要求您可以使用新功能扩展所有
EditText
,当EditText
的焦点丢失时,该功能将始终隐藏软键盘。如果要隐藏键盘,当某些EditText
的焦点丢失时,只需将这行代码用于该EditText
editText.hideSoftKeyboardOnFocusLostEnabled(true)
在EditText
的扩展中,我们只需添加或删除自己的OnFocusLostListener
fun EditText.hideSoftKeyboardOnFocusLostEnabled(enabled: Boolean) {
val listener = if (enabled)
OnFocusLostListener()
else
null
onFocusChangeListener = listener
}
下面是OnFocusLostListener
的实现,如果附加的视图的焦点丢失,它将隐藏键盘
class OnFocusLostListener: View.OnFocusChangeListener {
override fun onFocusChange(v: View, hasFocus: Boolean) {
if (!hasFocus) {
val imm = v.context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(v.windowToken, 0)
}
}
}
class OnFocusLostListener: View.OnFocusChangeListener {
override fun onFocusChange(v: View, hasFocus: Boolean) {
if (!hasFocus) {
val imm = v.context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(v.windowToken, 0)
}
}
}