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.


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


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);

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


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"));

-2

app:cardBackgroundColor="#488747"

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


-2

Sie können verwenden

app:cardBackgroundColor="@color/red"

oder

android:backgroundTint="@color/red"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.