Как предотвратить скрытие клавиатуры от просмотра - PullRequest
0 голосов
/ 17 апреля 2019

Есть веб-просмотр активности, мне нужно, чтобы клавиатура всегда отображалась на странице независимо от ввода (может не вводиться на некоторых страницах).

Кроме того, клавиатура не должна быть скрыта, когда пользователь нажимает кнопку или любое событие щелчка.

Я попробовал приведенные ниже варианты (пробовал со всеми типами флагов), но не смог найти.

InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.RESULT_SHOWN);

Ответы [ 2 ]

1 голос
/ 17 апреля 2019

Вы можете добавить android:windowSoftInputMode="stateAlwaysVisible" в ваш manifest.xml

<activity android:name=".YourActivity"
android:windowSoftInputMode="stateAlwaysVisible" />
0 голосов
/ 24 апреля 2019

Ответ ниже работает только тогда, когда у нас есть одно действие и веб-просмотр. Не тестируется для большого применения.

Ответ от настройки клавиатуры 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);
}
...