comment garder RecyclerView toujours de défilement en bas
- Je Utiliser Recyclerview Remplacer avec affichage de la liste
Je veux garder Recyclerview toujours faites défiler jusqu'en bas.
ListView pouvez utiliser cette méthode setTranscriptMode(AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL)
RecyclerView j'utilise la méthode smoothScrollToPosition(myAdapter.getItemCount() - 1)
mais lorsque le clavier virtuel de la Pop ,de son remplacer RecyclerView contenu.
- L'avez-vous résolu le problème à la fin? Je trouve setReverseLayout à vrai sera la cause de l'élément affiché à partir du haut vers le bas, il n'est pas convenable pour le chat.
- vous pouvez tenter ma réponse: stackoverflow.com/a/43647835/6482350
Vous devez vous connecter pour publier un commentaire.
C'est parce que RV pense que son point de référence est TOP et quand le clavier est en place, RV taille est mise à jour par le parent et RV maintient son point de référence stable. (garde donc la position de tête au même endroit)
Vous pouvez définir LayoutManager#ReverseLayout à vrai auquel cas RV va éléments de mise en page à partir de l'extrémité de l'adaptateur.
par exemple adaptateur position 0 est bas, 1 est au-dessus d'elle etc...
Ce sera bien sûr besoin de vous pour inverser l'ordre de votre adaptateur.
Je ne suis pas sûr mais la mise en la pile de fin peut aussi donner le même résultat w/o la réorganisation de la carte.
stackFromEnd
en XML est pas de travail tout en appelant la méthode sur code ne.reverseLayout
etstackFromEnd
de vrai, et de trier mes données à l'inverse, qui fonctionne comme une liste de Chat.Si vous voulez garder la position de défilement ancrées au fond de la
RecyclerView
, il est utile dans les applications de chat. appelez simplementsetStackFromEnd(true)
sur leLinearLayoutManager
à rendre le clavier de garder les éléments de la liste ancré sur le fond (le clavier) et non par le haut.LinearLayoutManager
?Que j'ai rencontré le même problème et je l'ai résolu en utilisant l'approche mentionnée ici. Il est utilisé pour détecter si le clavier virtuel est ouvert ou non et si elle est ouverte, il suffit d'appeler le
smoothScrollToPosition()
méthode.Facile!
myAdapter.getItemCount() > 0
Autrement lorsque l'application démarre sans éléments dans la liste, il va se bloquer car il essaie de faire défiler jusqu'à la position -1J'ai également fait face à un même problème. Mais le code suivant m'aider. J'espère que cela est utile.
Dans ce staus est arraylist.
suivante, c'est:-
En Cela, vous pouvez utiliser l'adaptateur de classe