Widget.AppCompat.Button colorButtonNormal montre gris

J’ai des values:styles.xml avec:

  @color/my_color @android:color/white  

et values-v21:styles.xml avec:

  @color/my_color @android:color/white  

Et le style de l’application avec

  @style/AppTheme.Button  

Mais les couleurs apparaissent en gris au lieu de @color/my_color

Pour personnaliser un seul bouton, définissez android: theme = “@ style / AppTheme.Button” sur votre bouton.

  

Définissez votre style comme vous l’avez fait dans votre question

  

[MODIFIER]

Voir la démo de GitHub ici

Utilisez Widget.AppCompat.Button.Colored tant que parent pour votre style.

  

Utiliser android:theme , pas de style dans les définitions de boutons:

  

Voir AppCompat v21> Bibliothèque de soutien Theming et Android v22.1 – Articles de blog AppCompat . (note sur le deuxième post, android:theme est supporté sur API11-, il ne fait tout simplement pas l’inheritance automatique du parent, vous devrez le spécifier sur chaque enfant, pas un problème ici mais mérite d’être mentionné – voir le post de Chris Banes sur cette).

Placez la ligne XML ci-dessous dans votre fichier XML “AppTheme”, plutôt que d’essayer de le définir à partir de “AppTheme.Button”. Cela fonctionne pour moi sur la v22.1.1 avec des dispositifs sans sucette. Je suppose que c’est un bug car votre solution ci-dessus fonctionne bien pour la sucette.

 @color/my_color 

Assurez-vous que votre Activity étend AppCompatActivity , sinon elle ne gérera pas correctement les styles appCompat.

  • classe: android.support.v7.app.AppCompatActivity
  • Gradle: comstack 'com.android.support:appcompat-v7:23.0.1'

Utilisation:

  

supprimer l’ android:

Ça marche:

    

colorButtonNormal peut être défini dans le style du thème. Pour changer la couleur du texte, la taille ou toute autre caractéristique du bouton, vous pouvez créer un style, puis utiliser buttonStyle (moins de v21) ou android:buttonStyle (v21 +) dans le style du thème pour définir le style du bouton.

v21 / styles.xml

   

styles.xml

  

Au début, je suis aussi confronté à ce problème. Après avoir fait la correction comme ci-dessus, j’ai eu le bouton de l’interface utilisateur correct

Si vous vous demandez pourquoi colorButtonNormal n’est pas défini comme défini pour les boutons désactivés, vous devrez peut-être également définir android:disabledAlpha sur 1.0 dans votre thème, sinon votre couleur se fondra par défaut dans l’arrière-plan du bouton. Exemple:

  

Salut je pense que le widget parent que vous avez utilisé pourrait ne pas être le bon, il devrait android:Widget.Button pour l’API version 21 ou version antérieure, pour version ultérieure 21 ou supérieure, vous devriez utiliser `Android: Widget.Material.Button. Disons que vous avez le style par défaut, regardez ci-dessous.

 res/values/styles.xml      

Pour l’API version 21, le fichier de style de ressource doit ressembler à (res / values-v21 / style.xml)

    

Merci de me faire savoir si vous avez des questions.

Essayez buttonStyle au lieu de Android: buttonStyle, puisqu’il s’agit de l’atsortingbut AppCompat avant Lollipop, il devrait donc être sans préfixe Android

Il semble y avoir un bogue sur le framework Android que nous ne pouvons pas changer en personnalisant colorButtonNormal avec le thème Widget.AppCompat.Button .
Une solution de contournement consiste à définir un autre thème AppCompat personnalisé et à utiliser colorAccent pour définir colorButtonNormal .

Il y a deux étapes suivantes.
1.Définissez un autre thème pour votre bouton personnalisé.

       

2.Appliquer le thème du bouton dans la mise en page.