android app Deshabilitar SoftKeyboard dentro de una WebView



android webview javascript (1)

Sé que esta es una pregunta común, pero no puedo encontrar aquí y en Google, una solución que funcione.

Tengo un WebView en mi aplicación de Android con una página JSF dentro con un componente simple DatePicker:

<p:calendar value="#{patientHealthDataView.dateFrom}" id="popupButtonDateFrom" showOn="button" class="tableCalendarText"/>

que muestra una ventana emergente con calendario.

Gracias a este comando, logro hacer que la ventana emergente funcione:

WebView view=(WebView)findViewById(R.id.statistics);
view.getSettings().setJavaScriptEnabled(true);

Desafortunadamente, cuando hago clic en el texto de entrada o en el botón para mostrar la ventana emergente del calendario, el foco va a Texto de entrada y Android muestra su teclado ocultando el calendario.

He intentado varias soluciones. El último fue esto:

 view.setOnTouchListener(new View.OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {
            hideSoftKeyboard(v);
            return false;
        }
    });

public void hideSoftKeyboard(View v) {
        Activity activity = (Activity) v.getContext();
        InputMethodManager inputMethodManager = (InputMethodManager)  activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
    }

Este código, como lo sugiere Android Studio, genera una excepción de puntero nulo en:

activity.getCurrentFocus().getWindowToken()

Otras soluciones dicen que inserte un comando especial en el manifiesto, pero quiero bloquear el teclado solo en el WebView.

Cualquier sugerencia?

https://ffff65535.com


Agregue el siguiente código en el diseño principal (principal) en su layout.xml

android:descendantFocusability="blocksDescendants"

Espero que funcione

y establece la siguiente propiedad en tu vista web

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




webview