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.

Ishaan
źródło
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

Leandro Borges Ferreira
źródło
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);
Nongthonbam Tonthoi
źródło
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));

Mohammed Rousul
źródło
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"));
yoAlex5
źródło
-1

app:cardBackgroundColor="#488747"

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

BlackBlind567
źródło
-2

Możesz użyć

app:cardBackgroundColor="@color/red"

lub

android:backgroundTint="@color/red"
Rania
źródło