Color de fondo de CardView siempre blanco

138

Estoy usando RecyclerView con GridLayoutManager y tengo cada elemento como CardView.

Desafortunadamente, el CardView aquí no parece cambiar su color de fondo. Intenté en el diseño y también mediante programación, pero he intentado que nada parece funcionar.

He estado luchando por bastante tiempo. Agradezco que alguien pueda ayudarme con este problema.

Ishaan
fuente
44
card_view: cardBackgroundColor = "@ android: color / white" verifique con esto.
santosh kumar
Necesito código para ayudar
Manza
Es un código muy largo, por lo tanto, no lo publiqué. Déjame publicar un código relevante.
Ishaan
Mientras revisaba el código para publicar aquí, descubrí que en algún lugar había puesto cardView.setCardBackgroundColor (Color.WHITE); Por eso siempre era blanco.
Ishaan

Respuestas:

348

Si desea cambiar el color de fondo de la tarjeta, use:

app:cardBackgroundColor="@somecolor"

Me gusta esto:

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

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

Editar: como señaló @imposible, debe incluir

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

en su etiqueta XML raíz para hacer que este fragmento funcione

Leandro Borges Ferreira
fuente
2
Gracias por tu respuesta, te lo agradezco.
Ishaan
1
Funcionó para mí cuando lo usé así ---> card_view: cardBackgroundColor = "@ color / white"
Himanshu Mori
2
En eso, tenga xmlns: app = " schemas.android.com/apk/res-auto " incluido en su archivo de diseño.
imposible
1
Estoy usando android.support.v7.widget.CardView. Usar app:cardBackgroundColor="@somecolor"funcionó para mí, pero card_view:cardBackgroundColor="@somecolor"no lo hizo.
Zamrony P. Juhara
36

Puede hacerlo en XML o mediante programación:

En XML:

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

Programáticamente:

cardView.setCardBackgroundColor(Color.RED);
Nongthonbam Tonthoi
fuente
1
Gracias por tu respuesta, lo resolví. Había cambiado el color programáticamente en algún lugar que no podía detectar.
Ishaan
5

Kotlin para XML

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

código

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

Mohammed Rousul
fuente
1
Gracias. Utilicé card.setCardBackgroundColor (R.color.bla) anteriormente, lo que conduce a resultados muy extraños. Obtener el color a través de ContextCompat hizo el truco para mí.
chrjs
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" />

Del código

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

app:cardBackgroundColor="#488747"

use esto en la vista de su tarjeta y puede cambiar el color de la vista de su tarjeta

BlackBlind567
fuente
-2

Puedes usar

app:cardBackgroundColor="@color/red"

o

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