Je souhaite appliquer un effet d'entraînement lorsqu'un élément clique. Mais je ne peux pas appliquer chaque élément
<TextView android:id="@+id/mistake_btn_tv" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:layout_gravity="bottom" android:background="@color/tabColor" android:gravity="center" android:requiresFadingEdge="none" android:text="" android:textColor="@color/md_white_1000" android:textSize="@dimen/txt_20" android:textStyle="bold" android:typeface="monospace"/>
arrière-plan déjà défini, alors comment utiliser le code suivant
android:background="?android:attr/selectableItemBackground"
android:background="@color/tabColor"
Je pense que les deux travaillent là-bas, mon arrière-plan "tabColor" et aussi l'effet d'entraînement
4 Réponses :
Vous devriez utiliser android: foreground = "? attr / selectableItemBackground"
pour l'effet d'entraînement.
Votre texte doit être cliquable pour que l'ondulation fonctionne. Définissez android: clickable = "true"
ou définissez un écouteur de clic dans le code.
Veuillez ajouter quelques explications à votre code afin que les autres puissent en tirer des leçons - pourquoi devrait-on «utiliser» ce contenu donné?
Vous pouvez utiliser un fichier dessinable
personnalisé pour un effet d'entraînement . Ici, je partage le code avec vous. Implémentez simplement ce code. J'espère que cela fonctionnera correctement.
android:background="@drawable/border_ripple_gray"
et définissez-le sur background[/%:-
<?xml version="1.0" encoding="UTF-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:color="@color/colorAccent" tools:ignore="NewApi"> <item android:id="@android:id/background"> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/white"/> <corners android:radius="5dp"/> <stroke android:width="1dp" android:color="@color/gray_text"/> <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" /> </shape> </item> </ripple>
Ajoutez cette ligne dans votre style.xml
android:foreground="?attr/selectableItemBackground"
et utilisez la propriété view: -
<item name="android:colorControlHighlight" tools:targetApi="lollipop">@color/backgroundWhite</item>
essayez
android: background = "? attr / selectableItemBackgroundBorderless"
stackoverflow.com/a/34128965/7666442 a>Ajoutez le ripple-like ceci que j'ai utilisé auparavant: [set ripple effect] ( stackoverflow.com/questions/31393684/... )
mais j'ai déjà ajouté un arrière-plan alors maintenant comment ajouter une ondulation
Les solutions fournies dans les réponses sont suffisantes pour créer un effet d'entraînement. Mais il n'apparaîtra que lorsque vous
setOnClickListener
ou rendre lavue
cliquable.