Le CardView a un attribut card_view:cardBackgroundColor
pour définir la couleur d'arrière-plan. Cet attribut fonctionne très bien.
En même temps, il n'y a pas de méthode pour changer la couleur de manière dynamique.
Je viens d'essayer des solutions comme:
mCardView.setBackgroundColor(...);
ou en utilisant une mise en page à l'intérieur de 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);
Ces solutions ne fonctionnent pas car la carte possède un cardCornerRadius.
android
android-5.0-lollipop
android-cardview
Gabriele Mariotti
la source
la source
card_view:cardBackgroundColor="@android:color/white"
card_view
espace de noms ne fonctionne pas pour moi, je dois l'utiliser à laapp
place.xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
Utilisez la propriété card_view: cardBackgroundColor:
la source
Vous pouvez l'utiliser en XML
ou ceci en Java
la source
J'ai utilisé ce code pour définir par programme:
Ou en XML, vous pouvez utiliser ce code:
la source
La façon dont il est défini dans la
initialize
méthode utilise laRoundRectDrawable
classe protégée , comme ceci:Ce n'est pas joli, mais vous pouvez étendre cette classe. Quelque chose comme:
puis:
ÉDITER
Cela ne vous donnera pas l'ombre sur <API 21, vous devrez donc faire de même avec
RoundRectDrawableWithShadow
.Il ne semble pas y avoir de meilleure façon de procéder.
la source
Un peu tard ici et partiellement hors sujet car ce n'est pas par programme, mais je trouve qu'il est préférable de configurer des styles pour les widgets et vous pouvez le faire pour
CardView
créer simplement un style, il gardera votre xml plus propre ...c'est en utilisant
android.support.v7.widget.CardView
puis définissez le style dans le fichier de mise en page:
vous devez importer la bibliothèque appcompat-v7 à l'aide du studio Android via gradle:
J'espère que cela t'aides. bon codage
la source
J'avais un problème similaire avec le formatage de CardViews dans un recylerView.
J'ai fait fonctionner cette solution simple, je ne sais pas si c'est la meilleure solution, mais cela a fonctionné pour moi.
Il récupère le fond Drawable de cardView et le teint.
la source
Vous pouvez utiliser ci-dessous
la source
Dans JAVA
Android utilise les couleurs ARGB. vous pouvez utiliser comme ceci (0xFF + COULEUR RVB) - Couleur codée en dur.
la source
Je suis tombé sur le même problème en essayant de créer une vue de carte par programme, ce qui est étrange, c'est que de regarder la doc https://developer.android.com/reference/android/support/v7/widget/CardView.html#setCardBackgroundColor%28int % 29 , les gars de Google ont rendu public l'API pour changer la couleur d'arrière-plan d'une vue de carte mais étrangement je n'ai pas réussi à y avoir accès dans la bibliothèque de support, alors voici ce qui a fonctionné pour moi:
CardViewBuilder.java
filter_container_background.xml
En faisant cela, je réussis à garder l'ombre de la vue de la carte et les coins arrondis.
la source
J'ai le même problème sur Xamarin.Android - VS (2017)
le solution qui a fonctionné pour moi:
SOLUTION
Dans votre fichier XML, ajoutez:
et dans votre
android.support.v7.widget.CardView
élément ajoutez cette propriété:(c'est à dire)
Vous pouvez également ajouter
cardElevation
etcardElevation
.Si vous souhaitez modifier le par
cardview
programme, il vous suffit d'utiliser ce code: For (C #)Et maintenant, vous pouvez changer la couleur d'arrière-plan par programme sans perte de bordure, de rayon d'angle et d'élévation.
la source
Vous pouvez l'utiliser en java.
cardView.setCardBackgroundColor (Color.parseColor ("# cac8a0"));
code couleur formulaire http://www.color-hex.com/
la source
C'est très simple dans kotlin. Utilisez ColorStateList pour changer la couleur de la vue de la carte
Une extension kotlin de ColorStateList:
la source
Le moyen le plus simple pour moi est celui-ci (Kotlin)
la source
Cardview
est un peu timide. J'avais une liste de couleurs dans ma structure et le modèle est comme}
charger le modèle avec la couleur, dernier élément sur la construction prenant de
R.color
et enfin, vous pouvez définirBackgrıundResource
la source
J'ai finalement eu les coins pour rester. C'est c #, Xamarin.Android
dans ViewHolder:
Dans l'adaptateur:
la source
Dans Kotlin, j'ai pu changer la couleur de fond comme ceci:
Ensuite, si vous souhaitez supprimer la couleur, vous pouvez le faire:
En utilisant cette méthode, j'ai pu créer une animation de sélection.
https://gfycat.com/equalcarefreekitten
la source
la source