Можно ли проверить в одной функции и потерю, и получение фокуса разных элементов?

Данный код проверяет потерю фокуса текстовым полем и скрывает клавиатуру, если фокус теряет текстовое поле. Но получается некрасиво когда переход осуществляется тоже в текстовое поле - клавиатура скрывается и вновь открывает. Хотелось бы сделать так, чтобы при переходе в другое текстовое поле клавиатура не скрывалась и не открывалась повторно. А оставалась открытой.

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

Если нужна какая-то проверка на получение фокуса текстовым полем, то как их объединить? что-то вроде:

viewItem.setOnClickListener { nextCurrent: View, hasFocus ->
    nextField = nextCurrent as EditText
    if(hasFocus)        
    ..............
}

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