CardView ma atrybut card_view:cardBackgroundColor
, aby określić kolor tła. Ten atrybut działa dobrze.
Jednocześnie nie ma metody dynamicznej zmiany koloru.
Właśnie wypróbowałem rozwiązania takie jak:
mCardView.setBackgroundColor(...);
lub używając układu wewnątrz cardView
<android.support.v7.widget.CardView>
<LinearLayout
android:id="@+id/inside_layout">
</android.support.v7.widget.CardView>
View insideLayout = mCardView.findViewById(R.id.inside_layout);
cardLayout.setBackgroundColor(XXXX);
Te rozwiązania nie działają, ponieważ karta ma kartę cardCornerRadius.
android
android-5.0-lollipop
android-cardview
Gabriele Mariotti
źródło
źródło
card_view:cardBackgroundColor="@android:color/white"
card_view
przestrzeni nazw nie działa dla mnie, muszęapp
zamiast tego użyć .xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
Użyj właściwości card_view: cardBackgroundColor:
źródło
Możesz użyć tego w XML
lub to w Javie
źródło
Użyłem tego kodu, aby ustawić programowo:
Lub w XML możesz użyć tego kodu:
źródło
Sposób, w jaki jest ustawiony w
initialize
metodzie, wykorzystuje chronionąRoundRectDrawable
klasę, na przykład:To nie jest ładne, ale możesz rozszerzyć tę klasę. Coś jak:
następnie:
EDYTOWAĆ
To nie da ci cienia na <API 21, więc musisz zrobić to samo z
RoundRectDrawableWithShadow
.Wydaje się, że nie ma lepszego sposobu na zrobienie tego.
źródło
Trochę późno tutaj i częściowo poza tematem, ponieważ nie jest to programowe, ale uważam, że najlepiej jest ustawić style dla widżetów i możesz to zrobić, aby po
CardView
prostu stworzyć styl, który utrzyma twój XML czystszy ...to używa
android.support.v7.widget.CardView
a następnie ustawianie stylu w pliku układu:
musisz zaimportować bibliotekę appcompat-v7 używając Android Studio za pomocą gradle:
mam nadzieję że to pomoże. szczęśliwego kodowania
źródło
Miałem podobny problem z formatowaniem CardViews w recylerView.
Mam to proste rozwiązanie, które działa, nie jestem pewien, czy jest to najlepsze rozwiązanie, ale zadziałało.
Pobiera tło Drawable z cardView i nadaje mu kolor.
źródło
Możesz użyć poniżej
źródło
W JAVA
Android używa kolorów ARGB. możesz użyć w ten sposób (0xFF + RGB COLOR) - kolor zakodowany na stałe.
źródło
Natknąłem się na ten sam problem, próbując programowo utworzyć widok karty, dziwne jest to, że patrząc na dokument https://developer.android.com/reference/android/support/v7/widget/CardView.html#setCardBackgroundColor%28int % 29 , faceci z Google upublicznili interfejs API, aby zmienić kolor tła widoku karty, ale o dziwo nie udało mi się uzyskać do niego dostępu w bibliotece pomocy technicznej, więc oto, co zadziałało dla mnie:
CardViewBuilder.java
filter_container_background.xml
W ten sposób udaje mi się zachować cień karty i zaokrąglone rogi.
źródło
Mam ten sam problem na Xamarin.Android - VS (2017)
Rozwiązanie że pracował dla mnie:
ROZWIĄZANIE
W swoim pliku XML dodaj:
iw swoim
android.support.v7.widget.CardView
żywiole dodaj tę właściwość:(to znaczy)
Możesz także dodać
cardElevation
icardElevation
.Jeśli chcesz edytować
cardview
programowo , wystarczy użyć tego kodu: For (C #)Teraz możesz programowo zmieniać kolor tła bez utraty obramowania, promienia narożnika i elewacji.
źródło
Możesz tego użyć w java.
cardView.setCardBackgroundColor (Color.parseColor ("# cac8a0"));
kod kolor formularz http://www.color-hex.com/
źródło
W kotlinie jest to bardzo proste. Użyj ColorStateList, aby zmienić kolor widoku karty
Rozszerzenie kotlin ColorStateList:
źródło
Najprostszym sposobem jest dla mnie ten (Kotlin)
źródło
Cardview
jest trochę nieśmiała. Miałem listę kolorów w mojej strukturze i model jest podobny}
wczytaj model kolorem, z którego pobierana jest ostatnia pozycja na konstrukcji
R.color
i na koniec możesz ustawićBackgrıundResource
źródło
W końcu udało mi się zatrzymać rogi. To jest C #, Xamarin.Android
w ViewHolder:
W adapterze:
źródło
W Kotlinie udało mi się zmienić kolor tła w następujący sposób:
Jeśli chcesz usunąć kolor, możesz to zrobić:
Dzięki tej metodzie mogłem stworzyć animację wyboru.
https://gfycat.com/equalcarefreekitten
źródło
źródło