Cómo configurar el color de resaltado para el elemento ListView?

Tengo que hacer otro color del punto culminante para el artículo de ListView. Utilizo el adaptador de encargo para los artículos, y tengo código siguiente:

Diseño:

<?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:background="#FFFFFF" android:weightSum="1.0" android:orientation="vertical" > <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_weight="0.13" android:background="@drawable/booklist_header" android:orientation="horizontal" android:layout_height="0dp" > <ImageView android:id="@+id/imageViewBookListBack" android:layout_width="wrap_content" android:layout_gravity="center" android:layout_height="wrap_content" android:src="@drawable/back_button" /> </LinearLayout> <LinearLayout android:id="@+id/linearLayout2" android:layout_width="fill_parent" android:layout_weight="0.77" android:layout_height="0dp" > <ListView android:id="@+id/listViewCurrentList" android:listSelector="@drawable/selector" android:layout_width="fill_parent" android:layout_height="fill_parent"> </ListView> </LinearLayout> <LinearLayout android:id="@+id/linearLayoutBooklistAdwhirl" android:layout_width="fill_parent" android:layout_weight="0.1" android:layout_height="0dp" > </LinearLayout> </LinearLayout> 

Código para el diseño del artículo:

 <?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:background="#FFFFFF" android:orientation="horizontal" > <ImageView android:id="@+id/imageViewBookListItemImage" android:layout_width="120dp" android:layout_marginTop="15dp" android:layout_height="120dp" /> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="wrap_content" android:layout_height="135dp" android:layout_marginTop="15dp" android:orientation="vertical" > <TextView android:id="@+id/textViewBookListItemTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Medium Text" android:textColor="#000000" android:textStyle="bold" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/textViewBookListItemAuthor" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Medium Text" android:textColor="#000000" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> </LinearLayout> 

Código para el selector:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:drawable="@color/green" /> <!-- focused --> <item android:state_focused="true" android:state_pressed="true" android:drawable="@color/green" /> <!-- focused and pressed--> <item android:state_pressed="true" android:drawable="@color/green" /> <!-- pressed --> <item android:drawable="@color/green" /> <!-- default --> </selector> 

Código para color.xml:

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="green">#006400</color> <color name="white">#FFFFFF</color> </resources> 

Pero tengo un problema: el elemento ListView no cambia de color por clic! Tiene color blanco siempre. ¿Dónde he cometido un error?

Así es como lo haces:

Primero, en su ListView , ponga lo siguiente:

  android:listSelector="#00000000" 

Esto hace que su listSelector (el color que normalmente se ve al hacer clic en la vista de lista) sea transparente.

A continuación, establezca el LinearLayout de la disposición del artículo en esto:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/selector" android:orientation="horizontal" > 

Tuve el mismo problema hace unos días y me tomó años para averiguar esto. Esperemos que funcione para usted!

Puede intentar agregar esto: android: drawSelectorOnTop = "true" a la definición de ListView.

¡Espero que esto te ayudará!

PS Puedes optimizar tu diseño principal y eliminar los diseños innecesarios. Puede usar layoutopt para esto.

  • Error "Paquete R no existe" al crear con Gradle desde la línea de comandos
  • Implementar seguridad a nivel de firma en los servicios de Android con más de una firma permitida
  • Google map android api v2 falla en la aplicación
  • No se puede poner más en una intención
  • Obtener el error java.lang.ArrayIndexOutOfBoundsException: demasiados datos para el bloque RSA
  • Anotación Java ejecuta un método dentro de la declaración de anotación (uso para android)
  • ¿Cómo hacer clic en un botón, que se indexa en la posición 10 en ListView - robótica automatización?
  • Analizar galleta que no tiene signo igual (=)
  • ¿Cómo llamo a un servicio web seguro (SSL) en Android, cuando Android no ve el certificado?
  • Reemplazar el nuevo método dexlib2 fallando
  • Error de Android Studio: "El método getText () debe ser llamado desde el subproceso de interfaz de usuario, el subproceso inferido actualmente es el trabajador
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.