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

  • Listview conjunto adaptador fragmento nullpointerexception
  • Buggy ListView me hace triste
  • Android: Listview se duplica cuando inicie una nueva actividad y presiona atrás para volver a ella
  • Android: ¿debería un adaptador listView ser parte de tu clase ViewModel?
  • Ancho del pie de lista
  • Las propuestas de optimización para ListView con datos de múltiples "tablas"
  • Eliminación de elementos de un ListView mediante un BaseAdapter personalizado
  • Reposicionar la barra de desplazamiento de ListView con relleno
  • Cómo rellenar un listview asincrónicamente?
  • Deshabilitar clic largo para encabezados (o pies de página) en un ListView
  • Adaptador personalizado que no muestra ningún dato en ListView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.