He recorrido los interwebs y encontré muchas publicaciones sobre cómo cambiar los colores de una vista de lista usando un selector de lista. Sin embargo, no parece funcionar para mí. Entonces mi pregunta sería ¿qué estoy haciendo mal?Personalizar Android ListView Colors?
Cuando uso los archivos a continuación, obtengo una lista donde todos los fondos de los artículos son inicialmente azules. (Esperaba que fuera blanco)
Cuando muevo el foco hacia arriba y hacia abajo, el texto cambia a gris oscuro y los fondos de los elementos siguen siendo azules. (Esto es cuando esperaría que una sola fila fuera azul con el resto blanco)
Cuando hago clic en una fila, el fondo de la fila en la que hice clic se vuelve negro y las demás filas en verde. (I espera que tenga la fila hice clic a verde y el resto será blanco)
Aquí es mi principal archivo de diseño:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:listSelector="@drawable/item_selector"
/>
<TextView
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/empty"
/>
</LinearLayout>
Aquí está mi archivo de lista de elementos:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:padding="10sp">
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
/>
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textStyle="bold"
android:padding="7dip"
android:textSize="18sp"
android:layout_toRightOf="@id/checkbox"
/>
</RelativeLayout>
Aquí es el archivo de mis colores:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#ff00</color>
<color name="green">#f0f0</color>
<color name="blue">#f00f</color>
<color name="white">#ffff</color>
</resources>
Aquí está mi archivo de selección:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@color/green" />
<item
android:state_focused="true"
android:drawable="@color/blue" />
<item
android:drawable="@color/white" />
</selector>
Afortunadamente es algo tonto y simple que estoy haciendo mal.
Gracias de antemano.
Parece que toda la lista se enfoca en lugar de los elementos de la lista individual. – YGL