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

23
demandé sur Sandra 2014-07-25 18:37:46

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)

41
répondu Micro 2016-03-16 15:46:22

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.

37
répondu Sandra 2014-07-29 08:42:20
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.

4
répondu Cüneyt 2017-02-02 12:36:06