Cómo evitar que los elementos de ListView se iluminen en negro
He estado intentando desesperadamente arreglar este problema donde se resaltan mis elementos de ListView. He revisado cualquier solución que he encontrado aquí en stackoverflow, y no he encontrado ninguno que funcione para mí.
En primer lugar, esto es un ListView en un LinearLayout en un ViewPager en un LinearLayout.
- Cómo hacer scrollViewer ListView, pero no para llenar toda la pantalla?
- Artículos de Android ListView que no llenan el ancho
- ListView, BaseAdapter, getViewTypeCount () - ¿Cómo forzar el adaptador a comprobar de nuevo getViewTypeCount ()?
- DialogFragment con ListView personalizado
- ¿Cómo reproducir varios vídeos en una vista de lista con MediaPlayer?
Cada elemento en ese Listview es un LinearLayout que contiene un LinearLayout (que contiene un TextView) y una Galería. La Galería contiene varios LinearLayouts que contienen TextView y Imageview en FrameLayout.
Este problema se produce no en el clic, sino en la función de arrastrar, al pasar el dedo por una historia (a veces, mientras que el ListView se desplaza con su arrastrar), el elemento situado debajo se selecciona. Además, este problema en particular sólo se produce en dispositivos donde el efecto de sobre-desplazamiento no causa un rebote al desplazarse.
Los intentos para resolver el problema son los siguientes:
- Establezca el selector de lista en el color de fondo en XML (Fail)
- Establezca el List Select en Alpha # 00000000 en XML (Fail)
- Lo anterior pero programáticamente
- Lo anterior pero por tema
- Código que establece la selección en -1 onListItemClick
- Eliminar el fondo del LinearLayout del elemento de lista (Works en 4.0)
- Configuración de
android:cacheColorHint
a#00000000
(no hace nada?)
Cualquier ayuda sería apreciada. Simplemente no puedo entender por qué está haciendo esto y realmente lo necesito para parar.
- Adaptador de vista personalizada con filtro Android
- Lista de preferencias sólo muestra el primer elemento
- No se puede iniciar la actividad: UnsupportedOperationException: addView (View, LayoutParams) no es compatible con AdapterView
- Adición dinámica de fila personalizada a listview
- ListView de Android con ViewHolder
- ListView "volver" al desplazarse
- ListView con los botones y la matriz estática de la secuencia
- Cómo extraer objetos de ListView - getItemAtPosition no funcionará
Este fue un problema muy interesante. La solución es aún más interesante.
Por alguna razón, lo que no intenté, y lo que nadie pensaba, era eliminar android:background
de LinearLayout
para los elementos de ListView.
Al eliminar android:background
, el diseño sigue mostrándose correctamente y el negro ya no aparece.
Si tienes un problema similar al que no soluciona, puedes consultar el blog de Android: ¿Por qué mi lista es negra?
EDIT: Esto funcionó bien para ICS, pero provocó un problema mucho mayor en 2.1. Para resolver completamente el calvario, terminé teniendo que especificar android:cacheColorHint="#000000"
al ListView
(y el LinearLayout
para la buena medida) en mis estilos en línea así como en la definición del estilo que apliqué al ListView
.