AdjustResize no funciona después de despedir el teclado haciendo clic en el teclado exterior

Tengo un WebView (dentro de un fragmento dentro de un ViewPager con SlidingTabLayout).

Al usar el WebView para escribir, quiero que el diseño cambie de tamaño para asegurarse de que la entrada es visible.

Cuando hago clic en una entrada de texto en el WebView, aparece el teclado y el diseño cambia de tamaño. Puedo ingresar mi texto y enviarlo usando el botón de retorno del teclado o cancelar la entrada usando el botón Atrás. Después de esto, el teclado desaparece y el diseño se vuelve a ajustar. Corregir el comportamiento AdjustResize .

Sin embargo, al descartar el teclado haciendo clic fuera del Softkeyboard (por ejemplo, al ingresar una consulta en Google y presionando el botón Buscar en el WebView) se ocultan los teclados y tarda aproximadamente 2-3 segundos en cambiar el tamaño del diseño (dejando un espacio en blanco para 2-3 segundos en la parte inferior de mi diseño). Después de eso, al seleccionar la entrada de texto, el teclado superpone el WebView (adjustPan).

¿Cómo puedo asegurarme de que al descartar el teclado pulsando el WebView, se mantiene el comportamiento de adjustResize .

He intentado volver a ajustar AdjustResize (por ejemplo, desde onTouch), pero esto no tiene ningún efecto:

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

También he intentado la siguiente solución, pero esto no da ningún cambio.

Además, creo que esto probablemente no es un problema de enfoque (ya que el teclado aparece, y la webview responde). Y pregunto el foco de mi opinión:

  webView.setFocusable(true); webView.setFocusableInTouchMode(true); 

Resultó ser que cuando se realizan las traducciones de diseño en el WebView o si el diseño de WebView se cambia indirectamente (por ejemplo, al cambiar el tamaño de un elemento por encima de la WebView en un RelativeLayout que hace que el WeView también a ser redimensionado) mostrar y ocultar el teclado puede causar Un comportamiento extraño:

  • El comportamiento de AdjustResize se puede perder (como se indica en la pregunta)
  • WebView redimensionar después de teclado puede tomar más tiempo que normal.
  • El rendimiento de WebView disminuye

Lo que resolvió este problema para mí, fue evitar los cambios de diseño en el WebView de cualquier manera (la recarga de diseño tras la rotación no parece causar esto). En mi caso estaba mostrando y ocultando la Barra de herramientas haciendo que el WebView cambiara de tamaño (y llenara la pantalla).

  • Android: cómo seleccionar textos de la vista web
  • Android: NullPointerException en la vista web
  • Renderizar archivos epub en android
  • Android WebView setCertificate emite problemas de SSL
  • setLoadWithOverviewMode para XWalkView
  • OnPageFinished () nunca llamado (webview)!
  • WebView no carga la página web
  • La pantalla parpadea cuando se utiliza una vista web con flash
  • El diálogo de carga de la vista Web de Android no se ha descartado
  • Aplicación android se estrella en el cambio de url de vista web
  • Cómo obtener el nombre de archivo al hacer clic en URL en la vista web
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.