Как закрыть программную клавиатуру от фрагмента с помощью Kotlin? - PullRequest
2 голосов
/ 04 апреля 2019

Я хотел бы закрыть экранную клавиатуру из фрагмента. Я нахожу много ответов, но все они на Java. Обычно я могу довольно легко перевести его на Kotlin, но мне тяжело с этим.

Самое близкое, что я получил, было:

fun closeKeyboard() {
    val activity = activity as FeedActivity

    val view = activity.currentFocus
    if (view != null) {
        val imm = ContextCompat.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager?
        imm!!.hideSoftInputFromWindow(view!!.getWindowToken(), 0)
    }
}

Но у меня проблемы с этой частью getSystemService(Context.INPUT_METHOD_SERVICE)

1 Ответ

4 голосов
/ 04 апреля 2019

Все правильно, кроме ContextCompat.getSystemService.Используйте Activity экземпляр вместо ContextCompat.

val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(view!!.getWindowToken(), 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...