Cor do plano de fundo do CardView sempre branca

138

Estou usando o RecyclerView com GridLayoutManager e tenho cada item como CardView.

Infelizmente, o CardView aqui parece não mudar sua cor de fundo. Eu tentei no layout e programaticamente também, mas tentei que nada parece funcionar.

Eu tenho lutado por um bom tempo. Agradeço se alguém puder me ajudar com esse problema.

Ishaan
fonte
4
card_view: cardBackgroundColor = "@ android: color / white" verifique com isso.
9137 santosh kumar
Precisa de código para ajudar
Manza
É um código muito longo, portanto não o publiquei. Deixe-me postar algum código relevante.
Ishaan
Enquanto eu estava examinando o código para postar aqui, descobri que em algum lugar havia colocado cardView.setCardBackgroundColor (Color.WHITE); que era a razão de sempre ser branca.
Ishaan

Respostas:

348

Se você deseja alterar a cor de fundo do cartão, use:

app:cardBackgroundColor="@somecolor"

como isso:

<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: Como apontado por @imposible, você precisa incluir

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

na sua tag XML raiz para fazer com que esse snippet funcione

Leandro Borges Ferreira
fonte
2
Obrigado pela sua resposta, agradeço.
quer
1
Ela trabalhou para mim quando eu usei-o como este ---> card_view: cardBackgroundColor = "@ cor / branco"
Himanshu Mori
2
Nesse caso, inclua xmlns: app = " schemas.android.com/apk/res-auto " no seu arquivo de layout.
impossível
1
Eu estou usando android.support.v7.widget.CardView. Usar app:cardBackgroundColor="@somecolor"funcionou para mim, mas card_view:cardBackgroundColor="@somecolor"não funcionou.
Zamrony P. Juhara
36

Você pode fazer isso em XML ou programaticamente:

Em XML:

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

Programaticamente:

cardView.setCardBackgroundColor(Color.RED);
Nongthonbam Tonthoi
fonte
1
Obrigado pela sua resposta, eu resolvi. Eu havia mudado a cor programaticamente em algum lugar que não conseguia identificar.
Ishaan
5

Kotlin for XML

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

código

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

Mohammed Rousul
fonte
1
Obrigado. Eu usei card.setCardBackgroundColor (R.color.bla) anteriormente, o que leva a resultados muito estranhos. Obter a cor via ContextCompat fez o truque para mim.
chrjs 29/06
3

Código 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" />

Do código

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

app:cardBackgroundColor="#488747"

use isso na visualização do seu cartão e você poderá alterar a cor da visualização do seu cartão

BlackBlind567
fonte
-2

Você pode usar

app:cardBackgroundColor="@color/red"

ou

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