Recyclerview faire le dernier point de l'élément sélectionné?
J'ai une horizontale Recyclerview qui affiche des images bitmap.
La Façon dont il est mis en œuvre est que j'ai un Imageview et un recyclerview dessous. L'élément actuellement sélectionné est affiché sur l'affichage de l'image. L'image sélectionnée de vue est un fond bleu pour indiquer qu'il est sélectionné. Je peux choisir des images de la galerie et à chaque fois qu'une nouvelle image est sélectionné, je veux faire défiler jusqu'à la dernière position et de faire de l'élément sélectionné.
La liste des images est conservé dans une liste de tableau et à chaque fois qu'une nouvelle image est ajouté, j'ai ajouter l'image à la liste et notifyDataChanged().
Actuellement, lorsque je suis de la liaison d'un point de vue, je bascule la visibilité de l'arrière-plan bleu dans
public void onBindViewHolder(final MyRecyclerViewHolder titulaire, int position) {
}
Mais le problème est que si l'enfant est hors de l'écran, de les lier la vue n'est pas appelé et je n'ai pas faites défiler jusqu'à la nouvelle position.
J'ai lu la documentation de recycleur de vue et ne pouvait pas comprendre comment faites défiler jusqu'à cette vue d'enfant. Je ne suis pas d'il y a un SmoothScrollTo méthode, mais ma question est: où dois-je déclencher cela ?
OriginalL'auteur LostPuppy | 2015-03-20
Vous devez vous connecter pour publier un commentaire.
Il y a une solution:
Dans votre
RecyclerView
adaptateur, ajouter une variableselectedItem
et méthodessetSelectedItem()
:Dans votre
onBindViewHolder(...)
, ajouter:Maintenant, vous pouvez faire défiler jusqu'à l'élément spécifique et définir sélectionné par programme:
Par exemple, vous voulez faire défiler à la dernière position et de le rendre sélectionné, allez à:
[Mise à JOUR]
Pour ajouter un élément et de le rendre sélectionné, vous devriez avoir un
addItem(...)
méthode dans l'adaptateur, qui va ajouter un élément à la liste. Après l'ajout d'élément, d'actualiser la liste et faites défiler jusqu'à nouveau ajouté/dernier élément:Espérons que cette aide!
regarde mon mise à JOUR, maintenant, après l'ajout d'un nouvel élément, il est sélectionné. J'ai testé les codes et fonctionnent très bien. Tout autre problème viens de dire
OriginalL'auteur Xcihnegn
Votre point de vue ne sera pas créé jusqu'à ce que vous faites défiler jusqu'à l'élément.
Vous devez appeler
Où la position est
Afin que l'élément est devenu visible.
Pourquoi ne pas vous ajouter un élément à votre liste actuelle et de notifier que les lignes insérées?
OriginalL'auteur Marcos Vasconcelos
Utilisation RecyclerView LayoutManager pour faire défiler l'élément à la position
J'ai oublié d'aborder le calendrier de la partie, idéalement, ce devrait être appelé lorsque la carte a été identifié de l'ensemble des données changer.
OriginalL'auteur trpride
Vous pouvez utiliser
OriginalL'auteur Marwen Doukh - Maruän Duch