Android: ¿por qué no puedo usar un selector para el fondo de TextView?
Mi selector es:
<item android:state_pressed="true" android:color="@color/bg_grey"/> <item android:state_focused="true" android:color="@color/bg_grey"/> <item android:color="@color/white"/>
y tengo mi TextView como:
- Android - barra de búsqueda de estilo
- Marcar al usuario seleccionado como se ha activado en FriendPicker (Facebook SDK para Android)
- Cambio de relleno en el selector
- Definición dinámica y uso de selectores
- Selector de botones de Android
<TextView android:id="@+id/tv" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:background="@drawable/textview_selector" android:padding="5dp" android:text="Some Text" android:textColor="@color/text_grey" android:textSize="16dp" />
De esta manera estoy recibiendo:
android.view.InflateException: Binary xml file line #68: Error inflating class <unknown>
si estoy utilizando este selector como android:textColor="@drawable/textview_selector"
su funcionamiento muy bien
- El selector ImageView no funciona
- Selector de fondo en RecyclerView Item
- Appcompact DialogFragment de una sola opción marca de verificación color
- Pulgar personalizado para un buscador en Android
- Cómo cambiar el color del texto en la prensa de un textview particular en un linearlayout
- Archivo XML válido da un error "no se pudo analizar" en Android ADT
- Android: Cómo hacer un selector desplegable
- ListView Sombra de artículo + selector personalizado
El problema aquí es que no se puede definir el color de fondo con un selector de color, necesita un selector de dibujo. Por lo tanto, los cambios necesarios se verían así:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/selected_state" /> </selector>
También necesitará mover ese recurso al directorio dibujable donde tendría más sentido ya que no es un selector de color per se.
Entonces tendrías que crear el archivo res / drawable / selected_state.xml como este:
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/bg_grey" /> </shape>
y finalmente, lo usarías así:
android:background="@drawable/selector"
Estás definiendo Color en lugar de un fondo Dibujable en Selectores xml, prueba con fondos dibujables
sólo necesita asegurarse de que los colores están en el archivo colors.xml y no coloque los colores hexadecimales directamente en los elementos del selector.
my_selector.xml:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/category_item_selected_color" android:state_selected="true"/> <item android:drawable="@color/category_item_selected_color" android:state_pressed="true"/> <item android:drawable="@color/white" /> </selector>
y hacer que su vista de texto tenga este aspecto:
<TextView android:id="@+id/tv_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:letterSpacing="0.05" android:textColor="#000000" android:gravity="center" android:textSize="17sp" tools:text="New In" android:clickable="true" android:focusable="true" android:focusableInTouchMode="true" android:background="@drawable/my_selector" android:layout_gravity="center" />
- onListItemClick no se llama en Listfragment
- No obtener fuentes procesadas (generadas) de anotación compiladas en apk, usando maven