Uso del selector de un diseño para cambiar las propiedades de su hijo
De forma predeterminada, ListView
cambia el color de fondo a naranja al ser pulsado y también el TextColor
de TextView
cambia a blanco / negro. Mediante la aplicación de un selector en un elemento ListView
podemos configurar el color de fondo para el estado pulsado, pero también podemos definir el TextColor
para TextView
dentro de ese elemento / diseño dentro del mismo selector? Si es así, ¿cómo?
- Programáticamente Arrojar ListView Android
- Colores de fondo personalizados de ListView
- ListView elemento con list_selector_background como LayerList drawable
- Listview dentro de listview y problema con height de la lista anidada listview
- Tratando de filtrar un ListView con runQueryOnBackgroundThread pero no pasa nada - ¿qué me falta?
- Android: Cómo configurar el evento onClick para el botón en el elemento de lista de ListView
- Cómo personalizar listview row android
- Cómo hacer que un elemento de una vista de lista no se pueda hacer clic en Android
- Cómo actualizar la lista con el adaptador Cursor
- añadir elementos en la parte superior de la vista de lista android
- Cómo enumerar todos los archivos y carpetas que se encuentran en la tarjeta sd
- ¿Cómo abrir diferentes actividades con mi lista?
- Error al agregar nuevos datos a ListView con ArrayAdapter
La respuesta de Amy88 resolvió el problema, pero no aborda específicamente el cambio de las propiedades de un niño de ViewGroup.
Supongamos que tiene un LinearLayout
puede LinearLayout
clic con un TextView
que debe cambiar de color cuando se pulsa. La clave es usar android:duplicateParentState="true"
en las vistas secundarias:
<LinearLayout android:duplicateParentState="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:duplicateParentState="true" android:text="@string/hello_world" android:textColor="@drawable/text_selector" /> </LinearLayout>
Puede especificar el selector como en la respuesta de Amy88.
Si está definiendo el archivo de diseño personalizado para el ListAdapter, establezca el color de texto de TextView en un diseño personalizado en un xml. Este diseño debe colocarse en una carpeta de recursos dibujable (cree una carpeta dibujable y coloque el text_selector.xml en ella).
Text_selector.xml:
<item android:state_selected="true" android:color="@android:color/black"/> <item android:state_focused="true" android:color="@android:color/black"/> <item android:state_pressed="true" android:color="@android:color/black"/> <item android:color="@android:color/white"/>
Para establecer el color del texto, utilice: android: textColor = "@ drawable / text_selector"
El ejemplo xml anterior establecerá el color de texto en blanco de forma predeterminada y establecerá el color de texto a negro cuando se enfoca, selecciona o presiona el elemento de lista.
- ViewPager.PageTransformer no se puede resolver con un tipo
- Cómo configurar un mapa de bits como fondo para una vista Android API 10-18?