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.