Remplacer Android-L CardView state_pressed pour les anciennes versions d'Android
Dans le dernier SDK Android nous avons maintenant la nouvelle CardView, j'ai remplacé mon vieux CustomCardView avec la nouvelle version, mais lors de l'exécution avec ce sur les anciennes versions d'Android, je vois que la state_pressed
& state_focused
sont moches carrés qui s'afficheront au-dessus de la CardView...
personne ne sait comment je pourrait émuler la suite dans le nouveau CardView mais uniquement lors de l'utilisation d'anciennes versions d'Android?
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:enterFadeDuration="150"
android:exitFadeDuration="150" >
<item android:state_pressed="true"
android:drawable="@drawable/card_on_press"/>
<item android:state_focused="true" android:state_enabled="true"
android:drawable="@drawable/card_on_focus"/>
<item android:state_enabled="true"
android:drawable="@drawable/card_default"/>
<item android:state_enabled="false"
android:drawable="@drawable/card_on_press"/>
</selector>
Et pour ceux que ça intéresse voici le CardView que j'utilise maintenant:
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/CardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:foreground="?android:attr/selectableItemBackground"
android:onClick="RunSomeMethod"
card_view:cardCornerRadius="4dp"
android:focusable="true"
android:elevation="2dp">
<LinearLayout
android:id="@+id/LinearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:focusable="false"
android:visibility="visible">
</LinearLayout>
</android.support.v7.widget.CardView>
source d'informationauteur Smiler
Vous devez vous connecter pour publier un commentaire.
Fixe avec le code suivant:
values-v21\styles.xml:
values\styles.xml:
Une carte de layout\main_layout.xml:
Cela vous permettra de proposer des animations dans v21+, mais également de proposer d'autres animations en pré-v21 plutôt que de le grand bleu/gris carré.
Ici est la card.xml je suis à l'aide d'un drawable pour ceux que ça intéresse:
Note:
Dessiné par défaut sera fine transparente, au point que CardView fournit un arrière-plan par défaut pour toutes les versions d'android.
Peut-être que la bibliothèque a été mise à jour, mais lorsque j'utilise la suite, il a l'air bien sur les anciennes versions d'Android.
Vous pouvez utiliser la CardView.Dark' et CardView.La lumière'
(auto-générer avec le support de la carte de bibliothèque)
Dans votre values/styles.xml
Mises en page pour CardView
Créer deux dispositions, l'une sombre et l'autre pour la lumière. Ils comprennent les vues carte comme ceci:
Prendre note de la commutation du style dans chaque CardView.
Autres personnalisations
Si vous souhaitez personnaliser la couleur plutôt que d'avoir juste noir ou blanc, vous pouvez utiliser les éléments suivants:
Pour obtenir le CardView drawable vous pouvez utiliser:
Mon convertIcon' est tout simplement la suivante:
Mon setViewBackground' est tout simplement la suivante:
StateListDrawable
Si vous souhaitez créer un StateListDrawable par programme peut utiliser les éléments suivants:
Voici le code que j'ai utilisé dans le card_on_press.xml fichier qui est stocké dans le dossier drawable du projet: