2010-02-17 60 views
55

estoy dando el siguiente método de llamada a mi cliente en vista web incrustado en mi diseño
wv.loadData("<html><body bgcolor=\"Black\"></body></html>","text/html", "utf-8");vista web mostrando barra blanca en el lado derecho

cuando ejecuto esto en el dispositivo, se muestra una barra vertical en el lado derecho . He arreglado la cosa blanca mediante el uso de webview.setBackgroundColor(Color.BLACK); pero quiero eliminarlo por completo

siguiente es mi diseño xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
    /> 
    <WebView android:id="@+id/wv1" 
      android:layout_height="fill_parent" 
      android:layout_width="fill_parent" 
      /> 

</LinearLayout> 

Cualquier sugerencia ??

+0

¿podría mostrarnos el xml del diseño que está utilizando? – dparnas

Respuesta

147

Utilice lo siguiente para ocultar pero no eliminar la funcionalidad de la barra de desplazamiento. El ajuste del margen de disposición es un trabajo desagradable.

//webview being your WebView object reference. webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

+9

Una nota al respecto. No tengo idea de por qué, pero configurar esto en el archivo XML en lugar de en el código Java no funcionó para mí. – rushinge

+0

@rushinge Totalmente de acuerdo en que esto no funciona cuando se configura con XML. Aquí hay un defecto de Android registrado http://code.google.com/p/android/issues/detail?id=17293&q=scrollbarStyle&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars –

+0

Por lo general, preferirá ** WebView. SCROLLBARS_INSIDE_OVERLAY **. De esta forma, la barra de desplazamiento se mostrará cuando recorra la vista. Este es el comportamiento predeterminado en las plataformas más nuevas, pero no en las antiguas (al menos no hasta el nivel 11 de la API). – cprcrack

4

Esta puede no ser la "mejor" respuesta, pero funcionó para mí.

<WebView android:layout_marginRight="-7dip" /> 

Avísame si hay algo mejor porque me parece harto raro.

+0

Tenía razón, es hackish. Por favor vea la solución de Chris Danielson arriba. –

+2

De hecho, utilicé algo similar a esto, pero tuve un comportamiento inesperado en diferentes dispositivos. No uses esto – Sabo

9

Establecería margin: 0 y relleno: 0 dentro de. Puede hacer algo como

<body style="margin: 0; padding: 0"> 
1

Mi aplicación tiene una noche en modo seleccionable que cambia a blanco sobre negro. La Vista central es un WebView que muestra texto.

Para el modo nocturno utilicé un archivo css adicional que mostraba texto blanco en un backbround negro pero los usuarios se quejaban de la barra de desplazamiento blanca a la derecha. Así que tuve el mismo problema que el descrito anteriormente. Sin embargo, tuve que activar y desactivar el modo nocturno programáticamente en el tiempo de ejecución, pero no quería simplemente ocultar las barras de desplazamiento.

La solución más sencilla que utilicé fue:

if (isNightMode()) { 
    webView.setBackgroundColor(Color.BLACK); 
} else { 
    webView.setBackgroundColor(Color.WHITE); 
} 

Ajuste del backgroundColor de la WebView afectada las barras de desplazamiento cuando sea necesario.

Cuestiones relacionadas