112 votes

Android : textColor du bouton désactivé dans le sélecteur ne s'affiche pas ?

J'essaie de créer un bouton avec un sélecteur. Mon bouton peut avoir les états suivants :

  • Activé/Désactivé
  • Pressé/Non pressé

Selon les états mentionnés ci-dessus. J'ai besoin de manipuler les boutons :

  • Couleur du texte
  • image de fond

Le bouton est désactivé au départ, il doit donc avoir la couleur de texte et l'arrière-plan du bouton désactivés. Mais je vois la textColor par défaut (spécifiée dans le style) et AUCUNE image de fond !

Voici mon sélecteur 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>

Et voici la déclaration de mon bouton dans mon 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" />

Et enfin, voici mon style (où ma textColor par défaut est définie)

<?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>

Aidez-moi !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X