CardView Hintergrundfarbe immer weiß

138

Ich verwende RecyclerView mit GridLayoutManager und habe jedes Element als CardView.

Leider scheint das CardView hier seine Hintergrundfarbe nicht zu ändern. Ich habe es im Layout und auch programmgesteuert versucht, aber ich habe versucht, nichts scheint zu funktionieren.

Ich habe eine ganze Weile gekämpft. Ich freue mich, wenn mir jemand bei diesem Problem helfen kann.

Ishaan
quelle
4
card_view: cardBackgroundColor = "@ android: color / white" überprüfen Sie dies.
Santosh Kumar
Brauchen Sie Code, um zu helfen
Manza
Es ist ein sehr langer Code, daher habe ich ihn nicht gepostet. Lassen Sie mich einen relevanten Code posten.
Ishaan
Während ich den Code durchging, um hier zu posten, stellte ich fest, dass ich irgendwo cardView.setCardBackgroundColor (Color.WHITE) abgelegt hatte; Das war der Grund, warum es immer weiß war.
Ishaan

Antworten:

346

Wenn Sie die Hintergrundfarbe der Karte ändern möchten, verwenden Sie:

app:cardBackgroundColor="@somecolor"

so was:

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

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

Bearbeiten: Wie von @imposible angegeben, müssen Sie einschließen

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

in Ihrem XML-Root-Tag, damit dieses Snippet funktioniert

Leandro Borges Ferreira
quelle
2
Vielen Dank für Ihre Antwort, schätzen Sie es.
Ishaan
1
Es hat bei mir funktioniert, als ich es so benutzt habe ---> card_view: cardBackgroundColor = "@ color / white"
Himanshu Mori
2
Fügen Sie dazu xmlns : app = " schemas.android.com/apk/res-auto " in Ihre Layoutdatei ein.
unmöglich
1
Ich benutze android.support.v7.widget.CardView. Die Verwendung app:cardBackgroundColor="@somecolor"hat bei mir funktioniert, aber card_view:cardBackgroundColor="@somecolor"nicht.
Zamrony P. Juhara
36

Sie können dies entweder in XML oder programmgesteuert tun:

In XML:

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

Programmatisch:

cardView.setCardBackgroundColor(Color.RED);
Nongthonbam Tonthoi
quelle
1
Vielen Dank für Ihre Antwort, ich habe es gelöst. Ich hatte die Farbe programmgesteuert an einer Stelle geändert, die ich nicht erkennen konnte.
Ishaan
5

Kotlin für XML

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

Code

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

Mohammed Rousul
quelle
1
Danke dir. Ich habe zuvor card.setCardBackgroundColor (R.color.bla) verwendet, was zu sehr seltsamen Ergebnissen führt. Das Erhalten der Farbe über ContextCompat hat den Trick für mich getan.
Chrjs
3

XML-Code

<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" />

Aus dem Code

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

app:cardBackgroundColor="#488747"

Verwenden Sie diese Option in Ihrer Kartenansicht, und Sie können die Farbe Ihrer Kartenansicht ändern

BlackBlind567
quelle
-2

Sie können verwenden

app:cardBackgroundColor="@color/red"

oder

android:backgroundTint="@color/red"
Rania
quelle