2012-02-24 15 views
6

He estado tratando desesperadamente de solucionar este problema donde se resaltan mis elementos ListView. Revisé cualquier solución que pude encontrar aquí en stackoverflow, y no encontré ninguna que funcione para mí.Cómo evitar que elementos de ListView resalten en negro

En primer lugar, esto es un ListView en LinearLayout en un ViewPager en LinearLayout.

Cada elemento en esa vista de lista es un LinearLayout que contiene un LinearLayout (que contiene un TextView) y una galería. La Galería contiene múltiples LinearLayouts que contienen una vista de texto e imagen en FrameLayout.

Este problema ocurre, no al hacer clic, sino al arrastrar, como cuando desliza el dedo sobre una historia (a veces, mientras que el ListView se desplaza con el arrastre) se selecciona el elemento que se encuentra debajo. Además, este problema en particular solo ocurre en dispositivos donde el efecto de sobrerrollamiento no causa un rebote al desplazarse.

Los intentos para resolver el problema son los siguientes:

  • Ajuste el selector de lista para el color de fondo en XML (Falla)
  • Establecer la lista de selección de Alfa # 00000000 en XML (Falla)
  • los anteriores, pero Programatically
  • los anteriores, pero por el tema
  • Código
  • que establece la selección de -1 onListItemClick
  • Extracción t que LinearLayout de fondo de la lista del artículo (funciona en 4.0)
  • Configuración android:cacheColorHint-#00000000 (no hace nada?)

Cualquier ayuda se agradece. Simplemente no puedo entender por qué está haciendo esto y realmente necesito que se detenga.

Screenshot of ListView Item being HIghlighted

+0

Cuando agrega un elemento a la lista en la que se puede hacer clic, desactiva la lista de selección, supongo que podría abusar de esta o buscar más en ella. – Warpzit

Respuesta

8

Este era un problema más interesante. La solución de los cuales es aún más interesante.

Por alguna razón, lo que no probé, y en lo que nadie pensó, fue eliminar android:background del LinearLayout para los elementos ListView.

Al eliminar android:background, el diseño continúa mostrando correctamente y el negro ya no aparece.

Si usted tiene un problema similar a este que no se soluciona, es posible que desee comprobar el blog de Android: Why is my list black?

EDIT: Esto funcionó bien para ICS, pero suscitó un problema mucho mayor en 2.1 . Para resolver completamente la dura prueba, terminé por tener que especificar android:cacheColorHint="#000000" en ListView (y LinearLayout en buena medida) en mis estilos en línea y en la definición de estilo que apliqué al ListView.

+4

en hechos, la sugerencia de color de la memoria caché debe establecerse en '# 00000000', no' # 000000' –

Cuestiones relacionadas