Si ejecuto javascript en un WebView
mientras se está desplazando el WebView
(con un dedo en la pantalla), la vista no se actualiza con la nueva apariencia hasta que el dedo se levanta del dispositivo y el desplazamiento se detiene.¿Hay alguna manera de obligar a WebView a actualizar su imagen (vista) mientras se desplaza?
Para probar esto, estoy anulando onScroll
en el WebView
y allí estoy llamando un poco de javascript que cambia el fondo de la página a un color aleatorio. Esto se invoca una y otra vez mientras la página se desplaza. Por lo tanto, debería mostrar rápidamente diferentes colores a medida que se desplaza.
Sin embargo, en un Nexus S con Gingerbread y un Galaxy Nexus con Ice Cream Sandwich, el color solo se actualiza cuando se detiene el desplazamiento.
Pero en un Xoom con Honeycomb, el color se actualiza constantemente a medida que se desplaza. Este es el resultado deseado.
¿Alguna idea de qué es diferente en los otros dispositivos y cómo forzar a WebView a actualizarse mientras se desplaza por la forma en que lo hizo Xoom?
Gracias!
Más información: Solo para tener en cuenta, el javascript se recibe y promulga durante el desplazamiento, pero la imagen que muestra estos cambios no aparece hasta que el desplazamiento finaliza. Por ejemplo, si el javascript que llamas es "console.log ('rawr');" los registros mientras aparecen mientras se desplaza.
encontrado algo en el código fuente Hay un método llamado WebView
startDrag() que llama WebViewCore.pauseUpdatePicture(mWebViewCore) que deshabilita la imagen se actualice mientras se desplaza. En 3.0 introdujeron la WebSetting setEnabledSmoothTransition() que puede ver en el código 4.0, le permite desactivar la pausa. Sin embargo, esto solo está disponible 3.0 y más, lo que significa menos del 3% de en los dispositivos wild. Hasta ahora no veo ninguna forma de evitar esto en dispositivos anteriores a 3.0 ..... :(
Lo extraño es que tengo 3.1 en un Xoom y funciona exactamente como yo quiero. Entonces tal vez cambiaron la forma en que lo hicieron, luego lo cambiaron de regreso, y luego lo cambiaron de vuelta al revés. ¿Alguna idea sobre cómo "superar esto"? ¡Gracias! – cottonBallPaws