Warna latar belakang CardView selalu putih

138

Saya menggunakan RecyclerView dengan GridLayoutManager dan saya memiliki setiap item sebagai CardView.

Sayangnya, CardView di sini tampaknya tidak mengubah warna latar belakangnya. Saya mencoba dalam tata letak dan secara terprogram juga tetapi saya sudah mencoba tidak ada yang tampaknya berhasil.

Saya telah berjuang cukup lama. Saya menghargai jika seseorang dapat membantu saya mengatasi masalah ini.

Ishaan
sumber
4
card_view: cardBackgroundColor = "@ android: color / white" periksa ini.
santosh kumar
Butuh kode untuk membantu
Manza
Itu kode yang sangat panjang maka saya tidak mempostingnya. Biarkan saya memposting beberapa kode yang relevan.
Ishaan
Ketika saya sedang membaca kode untuk memposting di sini, saya menemukan bahwa di suatu tempat saya telah meletakkan cardView.setCardBackgroundColor (Color.WHITE); yang merupakan alasan mengapa selalu putih.
Ishaan

Jawaban:

348

Jika Anda ingin mengubah warna latar belakang kartu, gunakan:

app:cardBackgroundColor="@somecolor"

seperti ini:

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

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

Sunting: Seperti yang ditunjukkan oleh @imposible, Anda harus memasukkan

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

di tag XML root Anda untuk membuat fungsi snippet ini

Leandro Borges Ferreira
sumber
2
Terima kasih atas jawaban Anda, hargai itu.
Ishaan
1
Ini bekerja untuk saya ketika saya menggunakannya seperti ini ---> card_view: cardBackgroundColor = "@ color / white"
Himanshu Mori
2
Di dalamnya , minta xmlns: app = " schemas.android.com/apk/res-auto " termasuk dalam file tata letak Anda.
mustahil
1
Saya menggunakan android.support.v7.widget.CardView. Menggunakan app:cardBackgroundColor="@somecolor"bekerja untuk saya, tetapi card_view:cardBackgroundColor="@somecolor"tidak.
Zamrony P. Juhara
36

Anda dapat melakukannya dalam XML atau secara terprogram:

Dalam XML:

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

Secara terprogram:

cardView.setCardBackgroundColor(Color.RED);
Nongthonbam Tonthoi
sumber
1
Terima kasih atas jawaban Anda, saya menyelesaikannya. Saya telah mengubah warna secara terprogram di suatu tempat yang tidak dapat saya temukan.
Ishaan
5

Kotlin untuk XML

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

kode

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

Mohammed Rousul
sumber
1
Terima kasih. Saya menggunakan card.setCardBackgroundColor (R.color.bla) sebelumnya yang mengarah ke hasil yang sangat aneh. Mendapatkan warna melalui ContextCompat melakukan trik untuk saya.
chrjs
3

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

Dari kode

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

app:cardBackgroundColor="#488747"

gunakan ini dalam tampilan kartu Anda dan Anda dapat mengubah warna tampilan kartu Anda

BlackBlind567
sumber
-2

Kamu bisa memakai

app:cardBackgroundColor="@color/red"

atau

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