L'ajout d'un nouvel élément au sommet de la RecyclerView
Je suis l'ajout d'un élément à recyclerview position 0 programamticly
public void addQuestion(Question question){
this.questionList.add(0, question);
notifyItemInserted(0);
}
C'est du très bon travail et les éléments n'apparaissent dans la liste en haut, MAIS l'utilisateur doit faire défiler jusqu'à voir le nouvel élément.
Est-il une astuce comment l'objet s'affichent en haut et en recyclerview est de défiler automatiquement ?
OriginalL'auteur Chris Blank | 2016-08-09
Vous devez vous connecter pour publier un commentaire.
bien vous pouvez utiliser
mRecyclerView.smoothScrollToPosition(int position)
Exemple:
Mise à JOUR:
si vous voulez faire le défilement de l'élément vraiment bon, vous pouvez jeter un oeil à la réponse à cette question
RecyclerView - Comment lisser faites défiler jusqu'à l'élément sur une certaine position?
C'est génial, merci !
smoothScrollToPosition(0)
est à la traîne si il y a plus d'éléments que la liste pourrait montrer à l'instant (c'est ce que j'ai vécu). J'ai simplement utiliséscrollToPosition(0)
au lieu de cela, il ne fait aucune différence dans la "douceur"OriginalL'auteur Max
Oui, vous pouvez le faire
OriginalL'auteur
Essayer cette
Il semble que nous à la fois posté en même temps
nan vous avez été 25 sec de retard 😀
Alors que cet extrait de code, peut-être de résoudre la question, y compris une explication aide vraiment à améliorer la qualité de votre post. Rappelez-vous que vous répondez à la question pour les lecteurs dans l'avenir, et ces personnes pourraient ne pas connaître les raisons de votre code suggestion. Veuillez aussi essayer de ne pas surcharger le code avec des notes explicatives, ce qui réduit la lisibilité à la fois le code et les explications!
OriginalL'auteur Akshay Panchal
Si je comprends bien droit et vous le problème, c'est que vous avez déjà défile en haut de la liste, mais lors de l'insertion de ce que vous avait à faire défiler à nouveau pour voir l'article, vous pouvez essayer mon approche de l'éviter.
De mon expérience, approche de défilement après l'insertion d'œuvres, mais les animations n'a pas l'air naturel.
Si vous voulez vraiment économiser les animations que vous pouvez essayer une approche qui m'a aidé dans mon projet: utilisation multi-tapé recycleur. Affichage de poste supplémentaire de deuxième type à la position 0 de votre carte. Cet élément peut être juste un point de vue avec peu de padding, l'en-tête (si vous avez besoin d') ou même une vue vide. Ensuite, notifyItemInserted(1), et à nice insérer l'animation.
REMARQUE: cette approche peut ajouter de la complexité de votre projet et nécessite des connaissances sur le multi-type de recycleur de vue.
OriginalL'auteur j2esu