Как убрать с экрана клавиатуру при клике >не< на EditText? (устранить двойное открытие клавиатуры)

При выполнении данной функции при клике на EditText происходит закрытие и повторное открытие клавиатуры. А нужно чтобы данная функция запускалась только если клик был не по EditText. Если по EditText - то не нужно закрывать клавиатуру. То есть нужно: если входим в EditText - то функция не срабатывает. И наоборот если кликнули на любое место, кроме EditText - то код пусть работает. EditText расположены во фрагменте, функция находится в activity.

override fun dispatchTouchEvent(event: MotionEvent): Boolean {
    if (event.action == MotionEvent.ACTION_DOWN) {
        val v: View? = currentFocus
        (v as? EditText)?.let {
            it.clearFocus()
            val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
            imm.hideSoftInputFromWindow(it.windowToken, 0)
        }
    }
    return super.dispatchTouchEvent(event)
}

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