RecyclerView : Comment créer insérer un effet d'animation?
J'ai un ReyclerView
de travail avec un LinearLayoutManager
et un Adapter<ViewHolder>
. J'ai une liste d'éléments que je voudrais afficher dans la recyclerview avec l'insert (diapositive) de l'animation. Comment puis-je aller à ce sujet ?
Je voudrais afficher les animations avec une linéairement croissante de retard en fonction de l'indice de l'élément.
Actuellement, si j'utilise 2 boutons "ajouter" et "supprimer", puis effectuez les opérations respectives sur le recyclerview (notifyItemInserted()
et notifyItemRemoved()
, les animations viennent gentiment.
Si I du programme boucle sur l'ensemble de données et d'ajouter les éléments, de nouveau, à l'aide de notifyItemInserted()
, je ne vois pas d'animation. Je viens de voir tous les éléments apparaissent presque à la fois.
Si j'utilise Asynctasks avec linéaire de retard, puis sur ajouter/supprimer l'élément dans OnPostExecute()
, je ne vois toujours pas d'animation. Aussi, je vois une possibilité de se heurter à des blocages si plusieurs insérer les threads sont en attente sur tous les retirez les fils à être rempli (avec pas de place pour la suppression de threads de s'exécuter).
Ce que je fais mal ?
Je suis passé par la plupart des questions liées à ce sur et avoir passé des heures à fouiner dans la partie animation de la recyclerview, toujours pas de chance.
OriginalL'auteur milindbableshwar | 2015-03-11
Vous devez vous connecter pour publier un commentaire.
Ci-dessous comment j'ai ajouter une animation dans mon
Adapter
. Cela permettra d'animer une poussée en effet, avec la ligne venant de la droite.D'abord définir l'animation en xml (
res/anim/push_left_in.xml
)Puis le mettre dans votre Carte comme
Cette animation sera affiché chaque fois que vous ajoutez une nouvelle ligne, il devrait fonctionner dans votre cas.
Modifier
C'est comment vous pouvez ajouter une animation à l'aide d'un
RecyclerView
RecyclerView
. @milindbableshwarJ'ai modifier le code correspondant à ma réponse, veuillez jeter un oeil. @milindbableshwar
Parfait! C'est le travail. Une question de suivi, comment animer élément suppressions ? Je veux dire, si je ont été de programmation pour supprimer la liste des éléments, où devrais-je commencer à les supprimer un élément d'animation ?
Malheureusement, je ne sais pas. J'ai fait quelques recherches mais impossible de trouver toutes les réponses pertinentes. Je crois qu'il est bon de créer une nouvelle question afin de répondre à cette question. @milindbableshwar
comment est lastPosition initialisé ou défini? Je suis en supposant que c'est (position 1), définie comme une méthode de la variable.
OriginalL'auteur Marcus
Ajoutez cette ligne à votre RecyclerView xml:
android:animateLayoutChanges="true"
Je suis content que ça a aidé!
OriginalL'auteur penduDev
Cela fonctionne pour moi:
OriginalL'auteur user2852741