Убрать фокус и курсор c edittext после закрытия клавиатуры

Мне необходимо убрать фокус и курсор с EditText после закрытия клавиатуры. Может нужно слушать клавиатуру или как-то иначе? Пишу на котлине если что


Ответы (1 шт):

Автор решения: Andrew

Как вариант - можно отслеживать состояние клавиатуры. Если она скрыта то убирать фокус:

view.setWindowInsetsAnimationCallback(object : WindowInsetsAnimation.Callback {
    override fun onEnd(animation: WindowInsetsAnimation) {
        super.onEnd(animation)
        val showingKeyboard = view.rootWindowInsets.isVisible(WindowInsets.Type.ime())
        if (!showingKeyboard){edittext.clearFocus()}
    }
})

так же можно ловить нажатие кнопки Enter на клавиатуре:

editText.setOnKeyListener(View.OnKeyListener { v, keyCode, event ->
                if (keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_UP) {
                    edittext.clearFocus()
                    return@OnKeyListener true
                }
                false
            })
→ Ссылка