2010-11-25 22 views
7

chicos! He buscado en Google todo un día, aún así, no puedo encontrar una solución. Por lo tanto, publico mi pregunta aquí, espero obtener un poco de éxito.Agregue una vista al final de Webview

Quiero agregar un área en blanco al final de una vista web en Android, intento establecer el relleno inferior de la vista web, sin embargo, no funciona. Sé que el diseño de la vista web es absoluteLayout, que está en desuso, e intenté obtener toda la longitud de la vista web, y agregué una vista al final, intenté usar getContentHeight(), sin embargo, la altura no es del todo correcta, no es el final de la vista web, tal vez debido a una imagen u otra cosa, no lo sé.

Entonces, mi pregunta es, ¿hay alguna forma de lograr mi objetivo original, que es agregar un área en blanco al final de una vista web?

¡Gracias de antemano!

Respuesta

3

Hice algo similar antes, pero creo que debería funcionar.

  1. Crear una clase personalizada que amplían la vista Web (digamos CustomWebView)

  2. Anulación onMeasure

por ejemplo,

public void onMeasure(int wspec, int hspec){ 
    super.onMeasure(wspec, hspec); 

    this.setMeasuredDimension(this.getMeasuredWidth(), this.getMeasuredHeight() + 200); // the padding you need. 
} 
+0

no funciona en 4.0.3, 4.4.3 – Cinakyn

3

Después de dos días en Google y tratando, finalmente obtengo lo que quiero, gracias xandy, su método me da un golpe.

Aquí está mi solución. No anulé el método OnMeasure; en su lugar, anulo el método computeVerticalScrollRange, , por lo que aumentará la longitud vertical completa de la vista web. Simplemente agregue un área en blanco al final.

Lo que sigue es mi código:

protected int computeVerticalScrollRange() { 
     float density = getResources().getDisplayMetrics().density; 
     return super.computeVerticalScrollRange()+(int)(60*density); 
    } 

Gracias de nuevo xandy.

+0

no funciona en 4.0.3, 4.4.3 – Cinakyn

-1

Ninguna de las soluciones aquí funcionó para mí, así que tomé una ruta diferente: para lograr agregar relleno al contenido del WebView y no al WebView en sí, lo hice usando JavaScript.

Cuando la página haya cargado por He utilizado el siguiente código:

loadUrl("javascript:document.getElementsByTagName('body')[0].style.paddingBottom='" 
    + mPadding 
    + "px'"); 

Usted tiene que tener cuidado al cambiar el CSS de la página web que está cargando. Funcionó en mi caso.

Cuestiones relacionadas