Comment animer recyclerview sur faites défiler jusqu'à l'instar de Google plus/Google kiosque à journaux?
Comment animer la RecyclerView
lorsque les éléments apparaissent pour la première fois et également lorsque l'utilisateur fait défiler, tout comme la façon dont il travaille pour les plus google app ou le google kiosque app.
Aussi j'ai lu quelque part que RecyclerView
ne prend pas directement en charge de l'animation lorsque l'utilisateur fait défiler; si cela est vrai, est-il possible que nous pouvons encore le faire?
Vous devez vous connecter pour publier un commentaire.
J'ai fait de cette façon. Pourrait aider quelqu'un. Je ne sais pas si c'est la meilleure façon de le faire, mais fonctionne très bien pour moi.
Mise à JOUR:
Pour résoudre le défilement rapide du comportement, de remplacer
onViewDetachedFromWindow
méthode de l'adaptateur et de l'appelclearAnimation
sur la vue animée (dans ce cas,holder.itemView.clearAnimation()
).Comme ceci:up_from_bottom.xml
down_from_top.xml
Et enfin, mettez ce code dans
onBindViewHolder
derecyclerView
. Créer un champ appelé lastPosition et l'initialiser à -1.onViewDetachedFromWindow
sur la carte et de l'appelclearAnimation
sur la vue animée (dans votre cas,holder.itemView
).Utilisation personnalisée ItemAnimator avec "glisser" de l'animation pour Ajouter une action.
Ce https://github.com/wasabeef/recyclerview-animators
Pour down_from_top.xml il devrait être
https://github.com/wasabeef/recyclerview-animators
Dans mon code ressemble à ça:
Vous avez besoin d'ajouter des dépendances à votre gradle
Lire le doc formulaire https://github.com/wasabeef/recyclerview-animators pour l'installer.
En dehors de toute bibliothèques dans RecycleView.Adaptateur sur la méthode onBindViewHolder utiliser l'animation comme dans l'exemple:
Code ci-dessus s'anime à partir du bas de chaque ligne dans la liste. L'Animation sera réalisée qu'une seule fois, mais onBindViewHolder est en cours d'exécution sur le défilement donc d'abord le défilement de la liste sera avec un effet d'animation.
Très important, c'est d'initialiser la vue de début de l'animation, donc dans l'exemple j'ai mis:
et l'animation d'aller avec le dos de tournage position:
Si vous avez besoin d'alpha le faire de cette façon: