RecyclerView onitemclick effet en L
Peut-être que cette question a déjà été posée, mais je n'ai pas trouvé de réponse précise. J'ai implémenté le widget RecyclerView
en tant que liste dans mon application de test L et je veux obtenir l'effet matériel lorsque vous cliquez sur un élément de la liste. J'ai implémenté un onClickListener
dans ma création ViewHolder
et défini l'attribut
android:background="?android:attr/selectableItemBackground"
En arrière-plan de la mise en page de mon élément de liste (au parent).
Mais rien de tout cela n'a fonctionné. Lorsque je clique sur les éléments, rien ne se passe. Il n'y a pas d'effet, holo, matériel, aucun... Veuillez indiquer si je fais quelque chose de mal ici... Thx
3 réponses
La réponse de Sandra n'a pas fonctionné pour moi. J'avais besoin d'une propriété de plus dans ma disposition d'élément de liste:
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
Remarque: Si vous obtenez une erreur lors du collage dans la dernière ligne, votre application android est définie sur la version 10 ou ci-dessous. Faites un clic droit sur L'erreur dans Android Studio et réglez-le de sorte qu'il va créer une version v11 de votre mise en page ainsi. Ensuite, dans la mise en page d'origine, assurez-vous de supprimer
android:background="?android:attr/selectableItemBackground"`
C'est parce que l'animation n'est pas prise en charge dans les versions V10 d'android ou inférieures. Avec ces deux fichiers de mise en page mis en place, l'animation affichera correctement dans les versions V11+ D'Android et bien sûr, il ne sera pas affiché dans les versions inférieures.
(ou simplement augmenter la version minSdkVersion de votre application à plus de 10)
J'ai fait une erreur stupide et n'ai pas mis
android:clickable="true"
android:focusable="true"
À ma disposition d'élément de liste. Je pense que ce n'était pas nécessaire avant L, mais cela n'a pas d'importance parce que c'était le problème dans ce cas.
android:clickable="true"
android:focusable="true"
Ces lignes ne sont plus utilisées. juste ajouter
android:background="?android:attr/selectableItemBackground"
Fonctionne pour l'effet de clic.