Lista de Android lista completa seleccionada seleccionada

Parece estar teniendo un problema de interfaz de usuario con un listview. Tengo un listview y seleccionando cualquier artículo en la lista, resalta el listview entero. La selección está funcionando bien, obtengo el elemento correcto en el oyente.

Pero el problema es que cuando selecciono cualquier elemento, la lista completa se resalta, por lo que es difícil decir qué fila se seleccionó.

Esto está funcionando bien en Android> 3.1 – Actualmente estoy probando en un dispositivo 2.3.

<ListView android:id="@+id/myList" android:layout_width="match_parent" android:layout_height="300dp" android:layout_marginTop="@dimen/margin_medium" android:background="@drawable/border" android:listSelector="#99000000" android:scrollbarFadeDuration="1000000" android:scrollbars="vertical" > </ListView> 

Recientemente tuve el mismo problema, pero la razón fue en Android <3.0 bug: si establece un @color como un drawable para su elemento de lista presionó el selector, entonces se llena el área de la lista entera. La solución es usar una "forma" dibujable en lugar de @color.

Por lo tanto, crear un nuevo archivo XML en res/drawable carpeta con contenido similar:

 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/my_list_item_pressed_color" /> </shape> 

Y la referencia creada dibujable en su selector ListView para state_pressed (también creada como archivo XML en la carpeta res/drawable ):

 <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:drawable="@drawable/list_item_pressed_bg" /> <item android:drawable="@android:color/transparent" /> </selector> 

Y utilice este selector en su ListView :

 <ListView ..... android:listSelector="@drawable/list_item_selector" /> 

Eso es todo. Funciona al menos con Android 2.2-2.3.

Si no desea cambiar su selector, también puede configurarlo como el fondo del diseño del elemento de lista, en lugar de hacerlo en el campo listSelector de ListView. Los elementos de la lista reciben el estado "seleccionado" cuando se tocan y el color se muestra correctamente.

Esto funciona para todas las versiones de Android.

Ej: Esta es la disposición de su elemento de lista

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/background_color"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Your text here" /> </LinearLayout> 

Y su lista sin selector de lista:

 <ListView android:layout_width="fill_parent" android:layout_height="fill_parent" /> 

Fijé esto quitando esta línea: (no sure porqué trabajó)

Android: listSelector = "# 99000000"

  • ¿Cómo puedo usar un listview sin extender ListActivity en mi clase?
  • Agregar encabezados en una listaVer utilizando ArrayAdapter
  • ListView Reordenable mediante arrastrar y soltar
  • Elemento de lista con CheckBox no se puede hacer clic
  • Usando onScroll en android listview
  • ¿Cómo saber qué elemento de la lista es visible para el usuario?
  • ¿El elemento de vista de lista se desliza hacia la izquierda y desliza hacia la derecha?
  • Android: ¿Es posible actualizar un solo elemento en un listview?
  • Android addHeaderView desaparece cuando no hay elementos en ListView
  • Android ListView con botón de eliminación
  • Android listview desplazamiento a número de listitems
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.