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
setOnClickListenerou rendre lavuecliquable.