สีพื้นหลัง CardView เป็นสีขาวเสมอ


140

ฉันใช้ RecyclerView กับ GridLayoutManager และฉันมีแต่ละรายการเป็น CardView

น่าเสียดายที่ CardView ที่นี่ดูเหมือนจะไม่เปลี่ยนสีพื้นหลัง ฉันลองใช้เลย์เอาต์และการเขียนโปรแกรมด้วย แต่ฉันพยายามแล้วดูเหมือนจะไม่ได้ผล

ฉันดิ้นรนมาระยะหนึ่งแล้ว ฉันขอขอบคุณหากมีใครสามารถช่วยฉันแก้ปัญหานี้ได้


4
card_view: cardBackgroundColor = "@ android: color / white" ตรวจสอบตามนี้
santosh kumar

ต้องการรหัสเพื่อช่วย
Manza

โค้ดยาวมากเลยไม่ได้โพสต์ ให้ฉันโพสต์รหัสที่เกี่ยวข้อง
Ishaan

ในขณะที่ฉันกำลังอ่านรหัสเพื่อโพสต์ที่นี่ฉันพบว่ามีบางแห่งที่ฉันใส่ cardView.setCardBackgroundColor (Color.WHITE); ซึ่งเป็นสาเหตุที่ทำให้มันเป็นสีขาวเสมอ
Ishaan

คำตอบ:


351

หากคุณต้องการเปลี่ยนสีพื้นหลังการ์ดให้ใช้:

app:cardBackgroundColor="@somecolor"

แบบนี้:

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

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

แก้ไข: ตามที่ @imposible ชี้คุณต้องรวม

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

ในแท็กราก XML ของคุณเพื่อสร้างฟังก์ชันข้อมูลโค้ดนี้


2
ขอบคุณสำหรับคำตอบขอขอบคุณ
Ishaan

1
มันใช้ได้ผลสำหรับฉันเมื่อฉันใช้แบบนี้ ---> card_view: cardBackgroundColor = "@ color / white"
Himanshu Mori

2
ในนั้นมี xmlns: app = " schemas.android.com/apk/res-auto " รวมอยู่ในไฟล์เลย์เอาต์ของคุณ
เป็นไปไม่ได้

1
ฉันใช้android.support.v7.widget.CardView. การใช้app:cardBackgroundColor="@somecolor"งานได้ผลสำหรับฉัน แต่card_view:cardBackgroundColor="@somecolor"ไม่ได้
Zamrony P.Juhara

36

คุณสามารถทำได้ทั้งใน XML หรือโดยใช้โปรแกรม:

ใน XML:

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

โปรแกรม:

cardView.setCardBackgroundColor(Color.RED);

1
ขอบคุณสำหรับคำตอบฉันแก้ไขได้แล้ว ฉันเปลี่ยนสีโดยทางโปรแกรมที่ไหนสักแห่งที่ฉันมองไม่เห็น
Ishaan

5

Kotlin สำหรับXML

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

รหัส

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


1
ขอบคุณ. ฉันใช้ card.setCardBackgroundColor (R.color.bla) ก่อนหน้านี้ซึ่งนำไปสู่ผลลัพธ์ที่แปลกมาก การรับสีผ่าน ContextCompat เป็นเคล็ดลับสำหรับฉัน
chrjs

3

รหัส 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" />

จากรหัส

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

-2

app:cardBackgroundColor="#488747"

ใช้สิ่งนี้ในมุมมองการ์ดของคุณและคุณสามารถเปลี่ยนสีของมุมมองการ์ดของคุณได้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.