Я хочу показать программную клавиатуру для чего-то EditText
, что имеет фокус и получено программно (без нажатия). И закройте его, когда произойдет какое-то событие, например, нажатие Button
на экран.
Я хочу показать программную клавиатуру для чего-то EditText
, что имеет фокус и получено программно (без нажатия). И закройте его, когда произойдет какое-то событие, например, нажатие Button
на экран.
Чтобы принудительно показать программную клавиатуру, вы можете использовать:
Однако, если вы хотите убрать фокус с
editText
него, необходимо, чтобы другойView
получил фокус . Поэтому, если у вас нет другого,View
вам придется создать еще одинView
пустой и передать ему фокус .Чтобы закрыть виртуальную клавиатуру, вы можете использовать:
Перевод с оригинала: Закрыть/скрыть экранную клавиатуру Android
Вы можете принудительно скрыть мягкую клавиатуру с помощью класса
InputMethodManager
, вызвав методhideSoftInputFromWindow
, отправив токен окна, которое содержит сфокусированное представление.Это заставит клавиатуру прятаться во всех ситуациях. В некоторых случаях его необходимо передать
InputMethodManager.HIDE_IMPLICIT_ONLY
вторым параметром, чтобы клавиатура была скрыта только тогда, когда пользователь явно не заставляет ее появляться (удерживая нажатой кнопку меню).Однако, поскольку
Android 4.1+
, вы должны добавить,view.clearFocus()
чтобы он работал правильно:В Котлине у меня сработало следующее, если вам это нужно, используйте соответствующее действие или фрагмент в зависимости от того, где вы хотите сделать вызов
Пример использования в сниппете: