Kolor tła CardView zawsze jest biały


148

Używam RecyclerView z GridLayoutManager i mam każdy element jako CardView.

Niestety, tutaj CardView nie wydaje się zmieniać koloru tła. Próbowałem w układzie i programistycznie, ale nie próbowałem nic nie działa.

Od dłuższego czasu walczę. Doceniam, gdyby ktoś mógł mi pomóc w tej sprawie.


4
card_view: cardBackgroundColor = "@ android: color / white" sprawdź to.
— santosh kumar

Potrzebujesz kodu do pomocy
— Manza

To bardzo długi kod, dlatego go nie wysłałem. Pozwól, że opublikuję odpowiedni kod.
— Ishaan,

Kiedy przeglądałem kod, aby opublikować tutaj, stwierdziłem, że gdzieś umieściłem cardView.setCardBackgroundColor (Color.WHITE); co było powodem, dla którego zawsze było białe.
— Ishaan,

Odpowiedzi:


368

Jeśli chcesz zmienić kolor tła karty, użyj:

app:cardBackgroundColor="@somecolor"

lubię to:

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

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

Edycja: jak wskazano w @imposible, musisz dołączyć

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

w głównym tagu XML, aby utworzyć funkcję tego fragmentu


2
Dziękuję za odpowiedź, doceniam to.
— Ishaan,

1
U mnie zadziałało, gdy użyłem go w ten sposób ---> card_view: cardBackgroundColor = "@ color / white"
— Himanshu Mori

2
W tym celu umieść xmlns: app = " schemas.android.com/apk/res-auto " w pliku układu.
— niemożliwe

1
Używam android.support.v7.widget.CardView. Używanie app:cardBackgroundColor="@somecolor"działało dla mnie, ale card_view:cardBackgroundColor="@somecolor"nie.
— Zamrony P. Juhara

36

Możesz to zrobić w XML lub programowo:

W XML:

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

Programowo:

cardView.setCardBackgroundColor(Color.RED);

1
Dziękuję za odpowiedź, rozwiązałem to. Programowo zmieniłem kolor w miejscu, którego nie mogłem dostrzec.
— Ishaan,

5

Kotlin dla XML

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

kod

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


1
Dziękuję Ci. Wcześniej użyłem card.setCardBackgroundColor (R.color.bla), co prowadzi do bardzo dziwnych wyników. Uzyskanie koloru przez ContextCompat załatwiło mi sprawę.
— chrjs

4

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

Z kodu

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

-1

app:cardBackgroundColor="#488747"

użyj tego w widoku karty i możesz zmienić kolor widoku karty


-2

Możesz użyć

app:cardBackgroundColor="@color/red"

lub

android:backgroundTint="@color/red"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.