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: consigue el i-ésimo TextView dentro de un ListView
  • Recuperar texto de un elemento ListView con OnContextItemSelected
  • Android: ListView con un modelo de datos complejos
  • Android: Múltiples temporizadores de cuenta atrás simultáneos en un ListView
  • Llamar a baseAdapter de Android notifyDataSetChanged () desde un método de retorno de llamada del oyente
  • ¿Cómo desactivo la barra de autocorrección en los teclados de Android?
  • Horizontal ScrollView en el elemento de vista de lista Android
  • Longitud androide de la barra de desplazamiento con diversos tamaños del artículo
  • Cómo mostrar el tamaño del archivo en vista de lista con nombre de archivo
  • Cómo crear ListView con la ayuda de remoteview?
  • OnItemClickListener no funciona correctamente cuando el adaptador contiene un botón con onClickListener
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.