Colore di sfondo CardView sempre bianco


139

Sto usando RecyclerView con GridLayoutManager e ho ogni elemento come CardView.

Sfortunatamente, qui CardView non sembra cambiare il colore di sfondo. Ho provato nel layout e anche a livello di programmazione, ma non ho provato nulla sembra funzionare.

Ho lottato per un bel po '. Apprezzo se qualcuno potrebbe aiutarmi con questo problema.


4
card_view: cardBackgroundColor = "@ android: color / white" controlla con questo.
Santosh Kumar,

Hai bisogno di codice per aiutarti
Manza,

È un codice molto lungo, quindi non l'ho pubblicato. Vorrei pubblicare un codice pertinente.
Ishaan,

Mentre stavo esaminando il codice per pubblicare qui, ho scoperto che da qualche parte avevo messo cardView.setCardBackgroundColor (Color.WHITE); che era il motivo per cui era sempre bianco.
Ishaan,

Risposte:


350

Se vuoi cambiare il colore di sfondo della carta, usa:

app:cardBackgroundColor="@somecolor"

come questo:

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

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

Modifica: come indicato da @imposible, è necessario includere

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

nel tag XML radice per rendere questa funzione snippet


2
Grazie per la tua risposta, lo apprezzo.
Ishaan,

1
Ha funzionato per me quando l'ho usato in questo modo ---> card_view: cardBackgroundColor = "@ color / white"
Himanshu Mori,

2
In questo, includi xmlns: app = " schemas.android.com/apk/res-auto " incluso nel tuo file di layout.
impossibile l'

1
Sto usando android.support.v7.widget.CardView. L'uso ha app:cardBackgroundColor="@somecolor"funzionato per me, ma card_view:cardBackgroundColor="@somecolor"non lo ha fatto.
Zamrony P. Juhara,

36

Puoi farlo in XML o a livello di codice:

In XML:

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

livello di programmazione:

cardView.setCardBackgroundColor(Color.RED);

1
Grazie per la tua risposta, l'ho risolto. Avevo cambiato il colore programmaticamente da qualche parte che non riuscivo a individuare.
Ishaan,

5

Kotlin per XML

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

codice

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


1
Grazie. Ho usato card.setCardBackgroundColor (R.color.bla) in precedenza, il che porta a risultati molto strani. Ottenere il colore tramite ContextCompat ha fatto il trucco per me.
chrjs

3

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

Dal codice

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

-2

app:cardBackgroundColor="#488747"

usalo nella vista della tua carta e puoi cambiare un colore della vista della tua carta


-2

Puoi usare

app:cardBackgroundColor="@color/red"

o

android:backgroundTint="@color/red"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.