Как скрывать клавиатуру по клику на экране?

Как скрывать клавиатуру по клику на экране, вне клавиатуры? Реализация скрытия клавиатуры по выходу из textView - не совсем нужный метод. Похожий вопрос был. Но мне кажется что это не очень "изящное" решение

Как скрывать клавиатуру при нажатии вне её области?

P.S. у меня активити и два фрагмента, на которых расположены основные элементы интерфейса. Активити "пустое"


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

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

Укажите id для корневого контейнера в вашей разметке:

android:id="@+id/root_container_view"

Повесьте OnTouchListener на корневой контейнер:

rootContainerView.setOnTouchListener { view, event ->
    if (event.action == ACTION_DOWN) {
        val imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
        imm.hideSoftInputFromWindow(view.windowToken, 0)
    }
    false
}

Игнорируйте ворнинг:

@SuppressLint("ClickableViewAccessibility")
→ Ссылка
Автор решения: jurvrn

На основе ответа mvs - поместил в MaynActivity. Вроде работает как надо.

    override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
    currentFocus?.let { currFocus ->
        val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        imm.hideSoftInputFromWindow(currFocus.windowToken, 0)
    }
    return super.dispatchTouchEvent(ev)
}
→ Ссылка