0
votes

Comment puis-je changer la couleur du bouton indépendamment de la couleur du fichier de mise en page primaire?

Je suis nouveau sur Android et j'essaie de créer une application simple. Cependant, je ne parviens pas à définir la couleur d'arrière-plan d'un bouton indépendamment de la couleur primaire de la mise en page.

Voici mon code activity_main:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/custom"/>
    <corners android:radius="150dp"/>

</shape>

Et voici ce que j'ai dans mon fichier dessinable créé:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="@drawable/red_to_blue_back">


    <Button
        android:id="@+id/btnMovieList"
        style="@style/Theme.MovieShow"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="@drawable/round_button"
        android:backgroundTint="#4CAF50"
        android:text="Movie List" />


</RelativeLayout>

Cependant, le bouton ne prend pas la couleur du fichier dessinable, mais quelle que soit la couleur définie comme colorPrimary dans le fichier themes.xml.

Des pensées?

Merci!


2 commentaires

Supprimer le style = "@ style / Theme.MovieShow" sur le bouton


Vous pouvez définir la couleur des boutons sur quelques niveaux: thème, style, backgroundTint, background. Votre problème peut également être lié à ceci: stackoverflow.com/questions/64722733/...


3 Réponses :


0
votes

Hmmmmm ...

Essayez de supprimer l'attribut de teinte d'arrière-plan dans xml. Assurez-vous également que votre couleur dessinable n'a pas de transparence.

Si vous devez utiliser l'attribut style, créez-en un autre spécifique à votre bouton et spécifiez sa propre couleurPrimary.

En effet, si votre style personnalisé a le style principal comme parent, il utilise automatiquement certains de ses attributs.

Les commentaires sont les bienvenus. Bon codage


0 commentaires

0
votes

Pour repartir de zéro, faites d'abord un nettoyage:

  • supprimer android:backgroundTint de la disposition des boutons
  • supprimer android:style de la disposition des boutons
  • allez au manifeste et changez la configuration du thème en non-matériel maintenant (plus dans cette réponse )

Avec une telle configuration, vous pouvez commencer à expérimenter avec android:background .


0 commentaires

0
votes

Merci les gars. J'ai changé le thème pour qu'il ne soit pas matériel et maintenant cela fonctionne


0 commentaires