tutorial studio recyclerview llenar custom como agregar activity android listview

android - studio - El fondo ListView se vuelve negro cuando se desplaza



llenar un listview android (11)

He creado una lista específica que existe de los siguientes elementos para crear una lista desplazable con cada fila que contiene una imagen en el lado izquierdo y un texto en el lado derecho:

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

<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"/> </LinearLayout>

y luego dentro de ListView coloco el siguiente elemento "fila":

<?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>

Siempre que la pantalla se muestre estáticamente (como en ningún movimiento) se mostrará correctamente, pero cuando comience a desplazarme por la lista, el fondo del elemento de la fila (un "icono", como se puede ver en el código) se mostrará se muestra correctamente, pero el fondo del diseño "raíz" se volverá completamente negro ... cuando el desplazamiento se detenga, la mayoría de las veces recuperará su color ... Mientras TextView también agregué un TextView en esa raíz Elemento con el mismo fondo, este detendrá su color cuando se desplace la Lista ... ¿Alguna idea de por qué sucede esto y cómo resolverlo?


Añadir un atributo en la etiqueta ListView

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

Para más detalles visita este blog.


En tu xml donde usar el conjunto Listview

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


Es muy simple, solo usa esta línea en tu archivo de diseño:

android:scrollingCache="false"

Me gusta esto:

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


Estoy usando imágenes en listView y a veces se vuelve negra en samsung s4, ni siquiera se desplaza. Fue un error estúpido que hice en el adaptador. Acabo de poner mi vista en nulo para solucionar este problema.

@Override public View getView(int position, View convertView, ViewGroup parent) { Holder holder; convertView = null; // convert view should be null if (convertView == null) { holder = new Holder(); convertView = inflater1.inflate(R.layout.listview_draftreport_item, null); } }


Hay muchas respuestas a esta pregunta, pero hoy me di cuenta de que a esta pregunta todavía le falta una información crítica.

Hay dos soluciones posibles para el problema, ambas funcionan pero cada una debe usarse en diferentes situaciones.

Métodos

Use android:cacheColorHint cuando su ListView tenga un fondo de color sólido .

<item name="android:cacheColorHint">@android:color/transparent</item>

Use android:scrollingCache cuando su ListView tenga una imagen (compleja) como fondo.

<item name="android:scrollingCache">false</item>

Nota

Cuando su ListView tenga un fondo de color sólido, ambos métodos funcionarán, por lo que no solo funcionará cacheColorHint . Pero no se recomienda usar el método scrolingCache para fondos de color sólido, ya que desactiva un método de optimización utilizado para animar y desplazar el ListView sin problemas.

Nota para la nota: scrolingCache establecido en falso no significa necesariamente que las animaciones de ListView y el desplazamiento sean lentos.


Lo siguiente me funcionó:

myListView.setScrollingCacheEnabled(false);


Se puede usar así:

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


Tenemos muchas opciones para este problema, puede configurar el fondo como transparente a través de la programación como

yourlistview.setCacheColorHint(Color.TRANSPARENT);

o a través de xml

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


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

o

no establezca el fondo de 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" android:cacheColorHint="#00000000"/>


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