web-dev-qa-db-fra.com

Effet d'ondulation pour les vues Lollipop

J'ai développé une application pour Lollipop (API 21). 

Lorsque je change la couleur Button en quelque chose, l'effet d'entraînement ne fonctionne pas. 

J'ai trouvé des bibliothèques tierces pour l'effet d'entraînement, mais je veux le faire avec une API standard. 

Cette réponse n'a pas aidé non plus.

XML:

<Button
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:text="New Button"
    Android:id="@+id/button"
    Android:layout_below="@+id/textView"
    Android:background="@Android:color/holo_blue_bright"
    Android:layout_alignParentStart="true"
    Android:layout_marginTop="76dp"
   />
20
zaingz

Vous devez définir l'arrière-plan de votre bouton sur un RippleDrawable que vous pouvez définir en XML. (Je vais le nommer holo_blue_ripple.xml)

<ripple xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:color="@Android:color/white"> <!-- ripple color -->

    <item Android:drawable="@Android:color/holo_blue_bright"/> <!-- normal color -->

</ripple>

Ensuite, référencez-le avec Android:background="@drawable/holo_blue_ripple".

31
Floern

Essaye ça:

<Button
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:background="?attr/selectableItemBackground"
    ...
 />

Basé sur ce tutoriel et les documents officiels

27
kip2

De plus, ?attr/selectableItemBackgroundBorderless peut être utilisé pour un effet d'entraînement circulaire.

7
Meanman

Essayez cet attribut

Android:background="?attr/selectableItemBackground"

C'est le moyen le plus simple de montrer l'effet d'entraînement dans votre vue/mise en page.

1
swetabh suman