2012-04-30 10 views
17

Tengo una clase personalizada que amplía WebView que muestra contenido HTML. Cuando el usuario hace clic en un vínculo en el documento HTML, calculo un valor X para desplazarse hasta, y luego usar scrollTo (x, y) para demostrar que la ubicación a través de un ejecutable (ver más abajo)Android WebView no procesa completamente el contenido hasta interacción del usuario

post(new Runnable() { 

      @Override 
      public void run() { 

       scrollTo(x, 0); 
       MyWebView.this.invalidate(); 
       MyWebView.this.buildDrawingCache(); 
       MyWebView.this.refreshDrawableState(); 
       MyWebView.this.postInvalidate(); 
      } 
     }); 

Después de desplazarse, existe la posibilidad de que la vista web no muestre todo el documento. Se muestran trozos rectangulares de espacios en blanco donde debería estar el texto, con una ubicación aparentemente aleatoria cada vez. Aquí está una captura de pantalla: http://i.imgur.com/g192Y.jpg

Cuando toco la vista web para desplazarme, inmediatamente se mostrarán las partes faltantes.

Hasta ahora este comportamiento está limitado a la 10.1" de la tableta Samsung Galaxy.

¿Alguien sabe una solución/cómo forzar webkit que volver a hacer la página?

+1

¿Alguna suerte aquí? Teniendo un problema similar Esto funciona bien en Jelly Bean, pero es un problema constante en ICS. –

+1

Tengo este problema exacto incluso en Jelly Bean. Sin embargo, está funcionando bien en Kitkat. –

Respuesta

6

Bueno estoy teniendo exactamente el mismo problema aquí con esa tableta, la única diferencia es que estoy usando iscroll para hacer todo el desplazamiento. La solución que estoy usando para este problema es "desplazar" a través de JavaScript un DIV oculto y eso solucionó el problema. Espero que esto puede ayudar a cualquier persona con el mismo problema. Si usa iscroll, tiene un método para "desplazarse" a una posición fija, tal vez eso también puede ayudarlo, si no es así. no es tan difícil de detectar el touchmove o mousemove eventos. El punto aquí es que solo necesita falsificar un desplazamiento en cualquier parte del html, incluso si no está visible.

Cuestiones relacionadas