Die CardView verfügt über ein Attribut card_view:cardBackgroundColor
zum Definieren der Hintergrundfarbe. Dieses Attribut funktioniert gut.
Gleichzeitig gibt es keine Methode, um die Farbe dynamisch zu ändern.
Ich habe gerade Lösungen ausprobiert wie:
mCardView.setBackgroundColor(...);
oder Verwenden eines Layouts in der 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);
Diese Lösungen funktionieren nicht, da die Karte einen cardCornerRadius hat.
android
android-5.0-lollipop
android-cardview
Gabriele Mariotti
quelle
quelle
card_view:cardBackgroundColor="@android:color/white"
card_view
Namespace funktioniert bei mir nicht, ich mussapp
stattdessen verwenden.xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
Verwenden Sie die Eigenschaft card_view: cardBackgroundColor:
quelle
Sie können dies in XML verwenden
oder dies in Java
quelle
Ich habe diesen Code verwendet, um programmgesteuert festzulegen:
Oder in XML können Sie diesen Code verwenden:
quelle
Die Art und Weise, wie sie in der
initialize
Methode festgelegt wird, verwendet die geschützteRoundRectDrawable
Klasse wie folgt:Es ist nicht schön, aber Sie können diese Klasse erweitern. Etwas wie:
dann:
BEARBEITEN
Dies gibt Ihnen keinen Schatten auf <API 21, daher müssten Sie dasselbe tun
RoundRectDrawableWithShadow
.Es scheint keinen besseren Weg zu geben, dies zu tun.
quelle
Ein wenig spät hier und teilweise außerhalb des Themas, da dies nicht programmgesteuert ist, aber ich finde es am besten, Stile für Widgets einzurichten, und Sie können dies tun, um
CardView
einfach einen Stil zu erstellen, der Ihre XML-Datei sauberer hält ...das benutzt
android.support.v7.widget.CardView
und dann den Stil in der Layoutdatei festlegen:
Sie müssen die Appcompat-v7-Bibliothek mit Android Studio über gradle importieren:
hoffe das hilft. fröhliche Codierung
quelle
Ich hatte ein ähnliches Problem beim Formatieren von CardViews in einer recylerView.
Ich habe diese einfache Lösung zum Laufen gebracht, bin mir nicht sicher, ob es die beste Lösung ist, aber sie hat bei mir funktioniert.
Es wird der Hintergrund von cardView gezeichnet und getönt.
quelle
Sie können unten verwenden
quelle
In JAVA
Android verwenden ARGB-Farben. Sie können wie folgt verwenden (0xFF + RGB COLOR) - Hartcodierte Farbe.
quelle
Beim Versuch, programmgesteuert eine Kartenansicht zu erstellen, bin ich auf dasselbe Problem gestoßen. Seltsam ist, dass Sie sich das Dokument https://developer.android.com/reference/android/support/v7/widget/CardView.html#setCardBackgroundColor%28int ansehen % 29 , Google-Leute haben die API veröffentlicht, um die Hintergrundfarbe einer Kartenansicht zu ändern, aber seltsamerweise ist es mir nicht gelungen, in der Support-Bibliothek darauf zuzugreifen. Deshalb hat Folgendes für mich funktioniert:
CardViewBuilder.java
filter_container_background.xml
Dadurch gelingt es mir, den Schatten der Kartenansicht und die abgerundeten Ecken beizubehalten.
quelle
Ich habe das gleiche Problem auf Xamarin.Android - VS (2017)
Die Lösung , die für mich funktioniert hat:
LÖSUNG
Fügen Sie in Ihrer XML-Datei Folgendes hinzu:
und
android.support.v7.widget.CardView
füge in deinem Element diesen Anstand hinzu:(dh)
Sie können auch hinzufügen
cardElevation
undcardElevation
.Wenn Sie das
cardview
programmgesteuert bearbeiten möchten, müssen Sie nur diesen Code verwenden: Für (C #)Und jetzt können Sie die Hintergrundfarbe programmgesteuert ändern, ohne Rand, Eckenradius und Höhe zu verlieren.
quelle
Sie können dies in Java verwenden.
cardView.setCardBackgroundColor (Color.parseColor ("# cac8a0"));
Code-Farbformular http://www.color-hex.com/
quelle
Der einfachste Weg für mich ist dieser (Kotlin)
quelle
Cardview
ist ein bisschen schüchtern. Ich hatte eine Liste von Farben in meiner Struktur und Modell ist wie}}
Laden Sie das Modell mit Farbe, das letzte Element auf der Konstruktion aus
R.color
und schließlich können Sie BackgrıundResource setzen
quelle
Ich habe endlich die Ecken, um zu bleiben. Dies ist c #, Xamarin.Android
in ViewHolder:
Im Adapter:
quelle
In Kotlin ist das sehr einfach. Verwenden Sie ColorStateList, um die Farbe der Kartenansicht zu ändern
Eine Kotlin-Erweiterung von ColorStateList:
quelle
In Kotlin konnte ich die Hintergrundfarbe folgendermaßen ändern:
Wenn Sie dann die Farbe entfernen möchten, können Sie dies tun:
Mit dieser Methode konnte ich eine Auswahlanimation erstellen.
https://gfycat.com/equalcarefreekitten
quelle
quelle