Почему программная клавиатура автоматически появляется в clearFocus ()? - PullRequest
0 голосов
/ 13 ноября 2018

Я вызываю clearFocus для текста редактирования, когда пользователь нажимает кнопку «Готово». Однако, когда я делаю это, приложение фокусируется на контейнере и появляется клавиатура. Когда я добавляю фиктивный вид, он фокусируется на этом виде, но клавиатура все равно появляется! Эта клавиатура тоже ничего не делает.

1 Ответ

0 голосов
/ 13 ноября 2018

Вы можете заставить Android скрывать виртуальную клавиатуру, используя InputMethodManager , вызывая hideSoftInputFromWindow , передавая токен окна, содержащего ваше сфокусированное представление.

// Check if no view has focus:
View view = this.getCurrentFocus();
if (view != null) {  
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

Это заставит клавиатуру быть спрятанной во всех ситуациях. В некоторых случаях вы захотите передать InputMethodManager.HIDE_IMPLICIT_ONLY в качестве второго параметра, чтобы гарантировать, что вы скрываете клавиатуру только тогда, когда пользователь явно не заставлял ее появляться (удерживая меню).

Примечание: если вы хотите сделать это в Kotlin, используйте:

context?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager

Показать больше ответов на эту тему Скрыть клавиатуру

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...