2011-06-08 10 views
83

Mi aplicación Android tiene un WebView principal (HTML cargado desde un recurso local) que quiero usar en todo el ancho de la pantalla y poder desplazarlo (verticalmente). Así que envolví el WebView en ScrollView en mi diseño XML, pero no importa lo que haga, parece que no puedo eliminar la barra de desplazamiento desde el lado derecho de la vista de desplazamiento. Peor aún, parece que no puedo cambiar el color de fondo de la pista de la barra de desplazamiento.Eliminar pista de la barra de desplazamiento desde ScrollView en Android

La pista ocupa alrededor de 10dp, lo que está creando problemas para el HTML en WebView. Me gustaría que la barra de desplazamiento aparezca en la parte superior de la vista web (estilo iPhone, si sabes a qué me refiero). Ahora, podría decir "¿por qué no cambia su HTML para que sea 10px más delgado?", Que es mi solución alternativa, pero preferiría no tener que hacerlo.

He aquí el fragmento correspondiente de diseño XML, verá que he intentado todas las androide: etc atributo que pude encontrar:

<ScrollView 
    android:id="@+id/deal_web_view_holder" 
    android:layout_below="@id/clock_bar_holder" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:fillViewport="false" 
    android:fadingEdge="none" 
    android:background="#02a7e9" 
    android:scrollbars="none" 
    android:scrollbarSize="0dp" 
    android:paddingRight="0dp" 
    android:scrollbarAlwaysDrawVerticalTrack="false" 
    android:scrollbarStyle="insideOverlay" 
    android:scrollbarTrackVertical="@drawable/scrollbar_track_vertical" > 
    <WebView 
     android:id="@+id/deal_web_view" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 
</ScrollView> 

estoy focalización plataforma 2.1/API lvl 7, en realidad sólo se trata con pantallas de tamaño normal, mdp, hdp y xhdp.

Respuesta

445

Para quitar una barra de desplazamiento desde un punto de vista (y de su subclase) a través de xml:

android:scrollbars="none" 

http://developer.android.com/reference/android/view/View.html#attr_android:scrollbars

+6

esto debería haber sido la respuesta correcta. –

+1

Esto no es lo que preguntó el cartel de la pregunta. Dijo que le gustaría 'que la barra de desplazamiento aparezca sobre el contenido de la vista web' – Sudhanshu

+4

respondió mi pregunta lol – quemeful

26

probar esto es su actividad onCreate:

ScrollView sView = (ScrollView)findViewById(R.id.deal_web_view_holder); 
// Hide the Scollbar 
sView.setVerticalScrollBarEnabled(false); 
sView.setHorizontalScrollBarEnabled(false); 

http://developer.android.com/reference/android/view/View.html#setVerticalScrollBarEnabled%28boolean%29

+0

Gracias ... había intentado que uno ya (en el código y en el layout.xml), pero este enfoque sigue siendo interferido con el tamaño horizontal de WebView en ScrollView. La mejor solución fue la que se proporciona arriba, simplemente eliminando ScrollView por completo y permitiendo que WebView maneje el desplazamiento por sí mismo. El problema de raíz fue mi falta de comprensión de cómo era apropiado usar ScrollView; es decir, todas las vistas en Android pueden manejar el desplazamiento. –

17

Estoy un poco confundido por qué usted está poniendo un WebView en un ScrollView en el primer lugar. Un WebView tiene su propio sistema integrado de desplazamiento.

cuanto a su pregunta real, si desea que el Scrollbar a aparecer en la parte superior, puede utilizar

view.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY) or 
android:scrollbarStyle="insideOverlay" 
+0

Sí, tiene razón acerca de no necesitar el ScrollView en primer lugar, lo solucioné yo mismo antes de volver aquí. El 'setScrollBarStyle' en la vista web funcionó de maravilla, ¡gracias! –

+0

No solo no es necesario, un ScrollView no puede contener vistas desplazables, por lo que su WebView no se habría desplazado de todos modos –

+3

No funciona. La respuesta correcta es la respuesta de Garzahd. –

3

resuelto mi problema con la adición de esto a mi Listview

android:scrollbars="none" 
3

Estas soluciones fracasado en mi caso con disposición relativa y si el teclado está abierto android:scrollbars="none" & android:scrollbarStyle="insideOverlay" tampoco funcionan.

barra de herramientas se ha ido, mi botón hecho se ha ido.

not Working

Éste es trabajo para mí

myScrollView.setVerticalScrollBarEnabled(false); 
Cuestiones relacionadas