373 votos

Fondo ListView se vuelve negro cuando desplazamiento

He creado una Lista específica que existe fuera de los elementos siguientes para crear una lista desplegable con todos los de la fila que contiene una Imagen en el lado izquierdo y algo de texto en el lado derecho:

Para comenzar con una "raíz" diseño de :

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:background="#C8C8C8"
>
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>
<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:drawSelectorOnTop="false"
    android:divider="#C8C8C8"
    android:background="#C8C8C8"/>



y, a continuación, en el control ListView pongo el siguiente "fila" elemento :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="@drawable/bg_row"
>
    <ImageView
        android:layout_width="wrap_content"
        android:paddingLeft="10px"
        android:paddingRight="15px"
        android:paddingTop="5px"
        android:paddingBottom="5px"
        android:layout_height="wrap_content"
        android:src="@drawable/bg_image"
    />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="5px"
        android:paddingBottom="5px"
        android:textSize="16sp"
        android:textColor="#000000"
        android:layout_gravity="center"
        android:maxHeight="50px"/>
</LinearLayout>

Mientras la pantalla se muestra de forma estática (como en movimiento) se muestra correctamente, pero cuando voy a iniciar el desplazamiento a través de la lista el fondo de la fila-objeto (un "icono" como se muestra en el código) se muestra correctamente, pero el fondo de la "raíz" de diseño será completamente negra... cuando el desplazamiento se detiene el fondo, la mayoría de las veces, volver a su color... Como puedo probar yo también añadió TextView en que la raíz del elemento con el mismo fondo, esto va a detener es de color cuando se desplaza por la Lista... Alguna idea de por qué está sucediendo esto, y cómo resolver esto?

742voto

Praveen Puntos 29841

Agregar un atributo en la etiqueta de ListView

android:cacheColorHint="#00000000" // setting transparent color

Para más detalles ver este blog

55voto

Mahesh Puntos 1655

Es muy fácil usar esta línea en su archivo de diseño:

android:scrollingCache="false"

Así:

<ListView 
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollingCache="false"
/>

22voto

nikki Puntos 1062

se puede utilizar como este:

list.setCacheColorHint(Color.TRANSPARENT);
list.requestFocus(0);

8voto

AnDx Puntos 506

android:id="@android:id/list"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:divider="#C8C8C8"
android:background="#C8C8C8"
android:cacheColorHint="#00000000"/>

5voto

Sampath Kumar Puntos 577

Tenemos un montón de opciones para este problema, puede establecer el fondo transparente a través de programación como

yourlistview.setCacheColorHint(Color.TRANSPARENT); 

o a través de xml

android:cacheColorHint="@android:color/transparent"

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X