У меня есть 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)
}
Комментариев нет:
Отправить комментарий