android - getLayoutPosition与getAdapterPosition
高洛峰
高洛峰 2017-04-17 17:45:11
0
1
709

看了stackoverflow RecyclerView.ViewHolder - getLayoutPosition vs getAdapterPosition上的解释

然后又看了 它俩的源码的注释

还是没有分清它俩的具体区别

有没有人具体的说明一下??!

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(1)
小葫芦

Lorsque le contenu de l'adaptateur change (et que vous appelez notify*) RecyclerView demande une nouvelle mise en page À partir de ce moment, jusqu'à ce que le système de mise en page décide de calculer une nouvelle mise en page (<16 ms), le système de mise en page décide de calculer une nouvelle mise en page (<16 ms). La position de la mise en page et la position de l'adaptateur peuvent ne pas correspondre car la mise en page n'a pas encore reflété les modifications de l'adaptateur.

La réponse est très claire. La différence spécifique est qu'il y aura un décalage horaire entre les positions de l'adaptateur et la mise en page (<16 ms). Si vous modifiez les données de l'adaptateur puis actualisez la vue, ce sera le cas. il faut un certain temps pour que la mise en page mette à jour la vue. Pendant cette période, les positions renvoyées par ces deux méthodes seront différentes.

De plus, la réponse mentionne également que la position dans l'adaptateur ne peut pas être obtenue immédiatement après notifyDataSetChanged, et ne peut être obtenue qu'une fois la mise en page terminée.

En ce qui concerne la position de la mise en page, après notifyItemInserted, la mise en page ne peut pas obtenir la nouvelle position immédiatement car la mise en page n'a pas encore été mise à jour (il faut

À propos de ça

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal