Запретить клавиатуру в webView - PullRequest
0 голосов
/ 01 мая 2018

Я хочу, чтобы программная клавиатура не появлялась из-за действия в моем веб-представлении. Это потому, что у меня есть пользовательская «клавиатура», состоящая из кнопок под webView. Однако я не хочу полностью отключать клавиатуру для моего приложения, поскольку я должен использовать ее в разных контекстах. Он просто не должен отображаться, когда пользователь нажимает на поле ввода внутри webView. Я также не хочу, чтобы клавиатура показывалась и мгновенно снова скрывалась.

У меня сейчас есть это в моем AndroidManifest.xml:

android:windowSoftInputMode="stateAlwaysHidden"

Я уже пытался отключить фокус веб-просмотра, но затем я также не могу вводить текст с помощью своей пользовательской «клавиатуры», так как поле ввода веб-просмотра не сфокусировано.

Я также попробовал это в onCreate, но это не сработало (клавиатура все равно появилась):

View focusedView = this.getCurrentFocus();
if (focusedView == null)
    return;
InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (manager == null)
    return;
manager.hideSoftInputFromWindow(focusedView.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Ответы [ 4 ]

0 голосов
/ 19 мая 2018

Используйте это в вашем WebView

 android:descendantFocusability="blocksDescendants"
 android:focusable="false"
 android:focusableInTouchMode="false"

Попробуйте это

<WebView
    android:id="@+id/myWebView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:descendantFocusability="blocksDescendants"
    android:focusable="false"
    android:focusableInTouchMode="false" />
0 голосов
/ 17 мая 2018
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

позвони, прежде чем все

0 голосов
/ 18 мая 2018

Вставьте это в ваш onCreate метод после setContentView

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

Клавиатура не будет отображаться при запуске этого действия.

0 голосов
/ 16 мая 2018

извините, я опоздал на этот.

Но вот решение:

Добавьте это в родительский макет:

android:descendantFocusability="blocksDescendants"

Установите эти два свойства вашего WebView:

android:focusable="false"
android:focusableInTouchMode="true"

Это работает для меня:)

...