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.