GOOGLE ADS

вторник, 12 апреля 2022 г.

Как программно закрыть/скрыть программную клавиатуру Android?

У меня есть EditTextи Buttonв моем макете.

После записи в поле редактирования и нажатия кнопки Buttonя хочу скрыть виртуальную клавиатуру при касании за пределами клавиатуры. Я предполагаю, что это простой фрагмент кода, но где я могу найти его пример?


Решение проблемы

Вы можете заставить 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качестве второго параметра, чтобы убедиться, что вы скрываете клавиатуру только тогда, когда пользователь явно не заставлял ее появляться (удерживая меню).

Примечание. Если вы хотите сделать это в Котлине, используйте:
context?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager

Синтаксис Котлина

// Only runs if there is a view that is currently focused
this.currentFocus?.let { view ->
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager
imm?.hideSoftInputFromWindow(view.windowToken, 0)
}

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...