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.
- Archivos locales de Android WebView + AJAX
- Webview dentro de RecyclerView está mostrando pantalla en blanco a veces en los dispositivos de turrón solamente
- Cómo recuperar el contenido HTML de WebView (como una cadena)
- Android: Usar html5 para determinar la geolocalización en webview con javascript api
- los vídeos de iframe no irán al modo de pantalla completa en la vista web de Android
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);
- Señal 11 SIGSEGV Crash en Galaxy S3 Android WebView
- El tamaño de las fronteras en WebView se representa de forma diferente
- La fuente del recurso no se carga en android webView
- ¿Por qué no puedo establecer currentTime y la duración es igual a 0 en HTML AudioElement en Android WebView?
- Establecer cookies de forma programática en Crosswalk WebView en Android
- Android: Programe el modo de selección de texto en un WebView en Jelly Bean
- Los subprocesos WebView nunca se detienen (WebViewCoreThread, CookieSyncManager, http )
- Selección de texto de Android en la vista web
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).