Ответ ниже работает только тогда, когда у нас есть одно действие и веб-просмотр. Не тестируется для большого применения.
Ответ от настройки клавиатуры InputMethodService.
hideWindow () - это метод переопределения, мы можем ограничить скрытие клавиатуры,
showKeyboard. Всегда и активность являются статическими переменными. Ограничение клавиатуры будет работать только для текущего приложения, а не для всех.
@Override
public void hideWindow() {
if (!showKeyboardAlways || SoftKeyboard.activity == null) {
super.hideWindow();
}
}
Это предотвратит событие нажатия кнопки активности, нам нужно реализовать логику, приведенную ниже
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && SoftKeyboard.activity != null) {
SoftKeyboard.activity.onBackPressed();
}
return super.onKeyDown(keyCode, event);
}