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.


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


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);

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))


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"));

-2

app:cardBackgroundColor="#488747"

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


-2

Kamu bisa memakai

app:cardBackgroundColor="@color/red"

atau

android:backgroundTint="@color/red"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.