web-dev-qa-db-fra.com

Comment faire défiler automatiquement la vue Recycler dans Android?

J'ai développé une application de chat où je peux envoyer et recevoir des messages. Mais le problème est que chaque fois que j'envoie ou reçois des messages, la vue du recycleur ne défile pas vers le haut afin que les messages s'affichent au-dessus du clavier.

J'ai utilisé la vue recycleur mentionnée ci-dessus Android.support.v7.widget.RecyclerView.

15
kalai

Lors de la mise à jour de recyclerview, essayez d'exécuter ce code:

recyclerView.post(new Runnable() {
    @Override
    public void run() {
        // Call smooth scroll  
        recyclerView.smoothScrollToPosition(adapter.getItemCount() - 1);                                 
    }
});
39
Nabeel K

J'utilise le code suivant pour que le défilement soit automatique jusqu'à la dernière position:

recyclerView.smoothScrollToPosition(adapter.getItemCount());

J'implémente pour ajouter un nouvel élément à la liste.

8
CoCo Dev

Essayez la méthode ci-dessous pour faire défiler automatiquement jusqu'à votre position particulière.

adapter = new DeliveriesDateRecycleAdapter(getActivity(),sampleDatedate, position);
                recyclerviewDates.setAdapter(adapter);
                adapter.notifyDataSetChanged();
                recyclerviewDates.smoothScrollToPosition(position);

Remarque: position - la position de la liste que vous souhaitez afficher.

3
Surendar D

Avez-vous essayé RecyclerView.srollTo(int x, int y)?

Modifier: essayez RecyclerView.scrollTo(0, 0) directement après avoir envoyé ou reçu le dernier message.

1
Benjamin Scharbau