Couleur d'arrière-plan CardView toujours blanche

139

J'utilise RecyclerView avec GridLayoutManager et j'ai chaque élément en tant que CardView.

Malheureusement, le CardView ne semble pas changer sa couleur d'arrière-plan. J'ai essayé la mise en page et le programme aussi mais j'ai essayé que rien ne semble fonctionner.

Je me bats depuis un bon moment. J'apprécie que quelqu'un puisse m'aider avec ce problème.

Ishaan
la source
4
card_view: cardBackgroundColor = "@ android: couleur / blanc" vérifiez avec ceci.
santosh kumar
Besoin d'un code pour aider
Manza
C'est un code très long donc je ne l'ai pas posté. Permettez-moi de publier un code pertinent.
Ishaan
Pendant que je parcourais le code pour publier ici, j'ai trouvé que quelque part j'avais mis cardView.setCardBackgroundColor (Color.WHITE); c'était la raison pour laquelle il était toujours blanc.
Ishaan

Réponses:

350

Si vous souhaitez modifier la couleur d'arrière-plan de la carte, utilisez:

app:cardBackgroundColor="@somecolor"

comme ça:

<android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardBackgroundColor="@color/white">

</android.support.v7.widget.CardView>

Edit: Comme indiqué par @imposible, vous devez inclure

xmlns:app="http://schemas.android.com/apk/res-auto"

dans votre balise XML racine afin de faire fonctionner cet extrait de code

Leandro Borges Ferreira
la source
2
Merci pour votre réponse, appréciez-la.
Ishaan
1
Cela a fonctionné pour moi quand je l'ai utilisé comme ça ---> card_view: cardBackgroundColor = "@ color / white"
Himanshu Mori
2
En cela, incluez xmlns: app = " schemas.android.com/apk/res-auto " dans votre fichier de mise en page.
impossible
1
J'utilise android.support.v7.widget.CardView. L'utilisation a app:cardBackgroundColor="@somecolor"fonctionné pour moi, mais card_view:cardBackgroundColor="@somecolor"n'a pas fonctionné.
Zamrony P. Juhara
36

Vous pouvez le faire en XML ou par programme:

En XML:

card_view:cardBackgroundColor="@android:color/red"

Par programme:

cardView.setCardBackgroundColor(Color.RED);
Nongthonbam Tonthoi
la source
1
Merci pour votre réponse, je l'ai résolu. J'avais changé la couleur par programmation quelque part que je ne pouvais pas repérer.
Ishaan
5

Kotlin pour XML

app:cardBackgroundColor="@android:color/red"

code

cardName.setCardBackgroundColor(ContextCompat.getColor(this, R.color.colorGray))

Mohammed Rousul
la source
1
Je vous remercie. J'ai utilisé card.setCardBackgroundColor (R.color.bla) précédemment, ce qui conduit à des résultats très étranges. Obtenir la couleur via ContextCompat a fait l'affaire pour moi.
chrjs
3

Code XML

<android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view_top"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:cardCornerRadius="5dp"
        app:contentPadding="25dp"
        app:cardBackgroundColor="#e4bfef"
        app:cardElevation="4dp"
        app:cardMaxElevation="6dp" />

À partir du code

CardView card = findViewById(R.id.card_view_top);
card.setCardBackgroundColor(Color.parseColor("#E6E6E6"));
yoAlex5
la source
-2

app:cardBackgroundColor="#488747"

utilisez ceci dans votre vue de carte et vous pouvez changer une couleur de votre vue de carte

BlackBlind567
la source
-2

Vous pouvez utiliser

app:cardBackgroundColor="@color/red"

ou

android:backgroundTint="@color/red"
Rania
la source