Cómo obtener pantalla en negro mientras se desplaza en ListView en Android

Tengo un listview en el que estoy mostrando datos que tengo, funciona bien en el emulador y desplazarse también. Pero cuando lo pruebo en el dispositivo en el momento del desplazamiento que está mostrando la pantalla en negro y después de que las paradas de desplazamiento está en la forma legible normal. No sé por qué está sucediendo esto. También adjunto código de ejemplo.

1ª Disposición XML: –

<?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="fill_parent" android:orientation="vertical" android:padding="7dp" > <TextView android:id="@+id/item_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="2dp" android:textColor="#000000" android:textAppearance="?android:attr/textAppearanceMedium" android:textSize="20dp" /> <TextView android:id="@+id/item_subtitle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#000000" android:padding="2dp" android:textAppearance="?android:attr/textAppearanceMedium" android:textSize="13dp" /> 

2nd ListView Layout: -También tiene vista de desplazamiento.

 <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="#FFFFFF"> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:drawSelectorOnTop="false" /> <TextView android:id="@android:id/empty" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="No data" android:textColor="#000000" /> 

Código donde he utilizado este diseño: –

 ListAdapter adapter = new SimpleAdapter(this, HomeMenuActivity.mylist , R.layout.listdata, new String[] { "Name", "Vicinity" }, new int[] { R.id.item_title, R.id.item_subtitle }); setListAdapter(adapter); lv = getListView(); lv.setTextFilterEnabled(true); 

Tengo arraylist estático "mylist" que tiene los datos. Por favor, si alguien tiene alguna idea de por qué muestra pantalla en negro en el momento de desplazamiento por favor guíame.

Gracias lv.setOnItemClickListener (this);

Estoy totalmente de acuerdo con todas las respuestas enumeradas anteriormente, pero déjame darte esta información:

ListView tiene un fondo transparente / traslúcido de forma predeterminada y, por lo tanto, todos los widgets predeterminados en el conjunto de herramientas de la interfaz de usuario de Android. Esto implica que cuando ListView vuelve a dibujar a sus hijos, tiene que mezclar a los niños con el fondo de la ventana. Una vez más, esto requiere lecturas costosas de memoria que son particularmente dolorosas durante un desplazamiento o un lanzamiento cuando el dibujo ocurre docena de veces por segundo.

Para mejorar el rendimiento del dibujo durante las operaciones de desplazamiento, el marco de Android reutiliza la sugerencia de color del caché. Cuando se establece esta sugerencia, el marco copia a cada hijo de la lista en un mapa de bits que contiene el valor de la sugerencia (suponiendo que otra optimización, denominada caché de desplazamiento, no esté desactivada). ListView entonces blits estos mapas de bits directamente en la pantalla y porque estos mapas de bits son conocidos por ser opaco, sin mezcla es necesario. Además, como la sugerencia de color de caché predeterminada es # 191919, obtendrás un fondo oscuro detrás de cada elemento durante un desplazamiento.

Para solucionar este problema, todo lo que tiene que hacer es desactivar la optimización de la sugerencia de color del caché, si utiliza un fondo de color no sólido o establecer la sugerencia en el valor de color sólido apropiado. Puede hacerlo desde el código (consulte setCacheColorHint(int) ) o preferiblemente desde XML, usando el atributo android: cacheColorHint. Para deshabilitar la optimización, simplemente use el color transparente # 00000000. La siguiente captura de pantalla muestra una lista con android:cacheColorHint="#00000000" establecido en el archivo de diseño XML

Para más información: Android ListView Optimization

Solución:

Puedes usar android:cacheColorHint="@android:color/transparent" o android:cacheColorHint="#00000000"

Tienes que configurar esto en tu listview:

 android:cacheColorHint="#00000000" 

El objetivo es deshabilitar una optimización que realiza el marco para mejorar el rendimiento del dibujo durante las operaciones de desplazamiento.

Simplemente agregue el atributo de sugerencia de color a la vista de lista.

  <ListView android:layout_height="wrap_content" android:layout_width="match_parent" android:cacheColorHint="@android:color/transparent" /> 

Agregue una propiedad en la etiqueta listview en su diseño

 android:cacheColorHint="#00000000" 

Después de que debería funcionar.

Intente este código y ajuste el color según su requisito:

 String arr[]=new String[]{"a","bv"}; ListView lv; protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); lv=(ListView)findViewById(R.id.lv1); ArrayAdapterad=newArrayAdapter(getApplicationContext(),R.layout.check_it,R.id.txt_color,ar); lv.setAdapter(ad); } 
 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:layout_width="match_parent" android:layout_height="250dp" android:id="@+id/lv1" android:background="#000" android:scrollingCache="false"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#fff" android:id="@+id/txt_color"/> 

  • Android - autoLink
  • Cómo poner listview dentro de un fragmento
  • ListView - barra de desplazamiento vertical en el lado izquierdo
  • ¿Saber cuándo una vista en un ListView ha salido de la pantalla?
  • Cómo implementar la paginación en Android listview
  • ListView de Android: Recurso no encontrado Excepción
  • OnCheckedChanged despedido varias veces, Listview con casilla de verificación
  • ListView para la aplicación de mensajería muestra un diseño incorrecto listItem después de desplazarse
  • Android: muestra el contenido de la lista
  • Listview con arraylist, adaptador simple en android
  • Lista dinámica que agrega "cargar más artículos" al final del desplazamiento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.