Android: textColor del botón deshabilitado en el selector no se muestra?
Estoy tratando de hacer un botón con un selector mi botón puede tener los siguientes estados:
- Habilitado Deshabilitado
- Presionado / No Presionado
Según los estados mencionados anteriormente. Necesito manipular los botones:
- Retrofit-2.0 - Parse respuesta que tiene json dentro de xml
- Cortar contenido en TextView
- Protobuf streaming (serialización perezosa) API
- Android ImageButton - no se puede obtener la imagen en el centro
- Android Hacer un XML dibujable compuesto de varios mapas de bits
- Color de texto
- imagen de fondo
El botón comienza mi ser deshabilitado por lo que debe tener el textColor deshabilitado y el fondo de botón desactivado. ¡Pero puedo ver el textColor del defecto (especificado en estilo) y NINGUNA imagen de fondo!
Aquí está mi selector button_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false" android:state_enabled="false" android:textColor="#9D9FA2" android:drawable="@drawable/button" /> <item android:state_pressed="true" android:state_enabled="true" android:drawable="@drawable/button_pressed"/> <item android:state_pressed="true" android:state_enabled="false" android:textColor="#9D9FA2" android:drawable="@drawable/button"/> <item android:state_pressed="false" android:state_enabled="true" android:drawable="@drawable/button"/> </selector>
Y aquí está mi declaración de botón en mi layout.xml
<Button android:id="@+id/reserve_button" android:text="@string/reserve_button" android:layout_width="120dp" android:layout_height="40dp" android:layout_marginTop="10dp" android:layout_marginLeft="20dp" android:paddingRight="15dp" android:layout_gravity="left" style="@style/buttonStyle" android:background="@drawable/button_selector" />
Y finalmente este es mi estilo (donde está configurado mi textColor predeterminado)
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="buttonStyle"> <item name="android:textStyle">bold</item> <item name="android:textColor">#282780</item> <item name="android:textSize">18sp</item> </style> </resources>
¡Por favor ayuda!
- Editar texto dentro de la vista de desplazamiento no se puede desplazar
- Xml extraer elementos del analizador xml
- Error al ejecutar el objetivo com.jayway.maven.plugins.android.generation2: android-maven-plugin
- Necesita ayuda para cambiar de actividad
- El efecto Ripple no va por encima de ImageView
- ¿Permitir sólo 2 orientaciones de pantalla en Android?
- Cambiar el tinte de dibujable en el selector xml
- Almacenar datos estáticos en Android - recurso personalizado?
También es necesario crear una StateList
para los colores de texto que identifican diferentes estados.
Haz lo siguiente:
-
Cree otro archivo XML en
res\color
llamado algo comotext_color.xml
.<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- disabled state --> <item android:state_enabled="false" android:color="#9D9FA2" /> <item android:color="#000"/> </selector>
-
En su
style.xml
, ponga una referencia a ese archivotext_color.xml
como sigue:<style name="buttonStyle"> <item name="android:textStyle">bold</item> <item name="android:textColor">@color/text_color</item> <item name="android:textSize">18sp</item> </style>
Esto debería resolver su problema.
La solución más fácil es establecer el filtro de color a la imagen de fondo de y el botón como he visto aquí
Puede hacer lo siguiente:
if ('need to set button disable') button.getBackground().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY); else button.getBackground().setColorFilter(null);
Espero haber ayudado a alguien …
1.Create una carpeta de color en / res / carpeta y en la carpeta de color crear en xml:
Text_color_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- disabled state --> <item android:state_enabled="false" android:color="#776678" /> <item android:color="#ffffff"/> </selector>
2.Now Crear un diseño xml: –
<Button android:id="@+id/button_search" android:layout_width="652dp" android:layout_height="48dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="18dp" android:background="@android:color/transparent" android:text="Hello Bhaskar" android:textColor="@color/text_color_selector"/>
<Button android:id="@+id/reserve_button" android:text="@string/reserve_button" android:layout_width="120dp" android:layout_height="40dp" android:layout_marginTop="10dp" android:layout_marginLeft="20dp" android:paddingRight="15dp" android:layout_gravity="left" style="@style/buttonStyle" android:background="@drawable/button_selector" />
No puedo ver diabling de su botón en su xml de la disposición. Agregue esto a su disposición del botón.
android:enabled="false"
Así que su disposición del botón será,
<Button android:id="@+id/reserve_button" android:text="@string/reserve_button" android:layout_width="120dp" android:layout_height="40dp" android:layout_marginTop="10dp" android:layout_marginLeft="20dp" android:enabled="false" android:paddingRight="15dp" android:layout_gravity="left" style="@style/buttonStyle" android:background="@drawable/button_selector" />
<item android:state_enabled="true"> </item> <item android:state_enabled="false"> </item> <item android:state_pressed="true" > </item>
Espero que funcione!
- ¿Puede un dispositivo Android actuar como iBeacon?
- Excepción generada durante la representación: Línea de archivo XML binario # -1: inflado de error clase <desconocido>