Ответ 1
Вы можете управлять клавиатурой из WebView, но, как говорят другие, это может не работать с любой клавиатурой. Несмотря на это, я обычно нахожу, что большинство основных клавиатур реализовало поведение, которое я хочу.
WebView имеет метод под названием onCreateInputConnection
. Вы можете подключиться к этому методу и добавить (и/или удалить) флаги в inputType
и/или imeOptions
. Для вас доступно множество флагов.
Ознакомьтесь с параметрами EditorInfo, в частности IME_FLAG_NAVIGATE_NEXT и IME_FLAG_NAVIGATE_PREVIOUS. См. Нижеприведенное использование (которое удаляет флаги prev/next из параметров клавиатуры):
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
outAttrs.imeOptions = outAttrs.imeOptions & ~EditorInfo.IME_FLAG_NAVIGATE_NEXT &
~EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS;
return inputConnection;
}
Еще одна вещь, которую вы могли бы попробовать, - скрыть панель всех предложений, используя флаги InputType TYPE_TEXT_FLAG_NO_SUGGESTIONS
. См. Пример ниже (который добавляет флаг "нет предложений" к типу ввода):
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
outAttrs.inputType = outAttrs.inputType | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS;
return inputConnection;
}
Есть много других доступных флажков для игры с настройкой IME непосредственно из WebView. Обратитесь к разработчику на связанные страницы, и вы, надеюсь, сможете добиться того, что вы будете выполнять на большинстве клавиатур.