美文网首页Android 开发
notifyDataSetChanged优化

notifyDataSetChanged优化

作者: BugFree张瑞 | 来源:发表于2018-12-04 15:17 被阅读11次

改为局部刷新

问题待研究:

1)StaggeredGridLayoutManager 当 item 只有一个时:

https://stackoverflow.com/questions/27800575/recyclerview-staggeredgridlayoutmanager-reordering-issue

2)RecyclerView 的 notifyItemRemoved 的坑:

https://stackoverflow.com/questions/28189371/using-notifyitemremoved-or-notifydatasetchanged-with-recyclerview-in-android

因为该方法不会使 position 及其之后位置的 itemView 重新 onBindViewHolder;

在删除单项后,已经出现在画面里的项不会再有调用 onBind 机会,这样它保留的 position 一直是未进行删除操作前的 position 值。所以,我们一般需要在 notifyItemRemoved 之后再刷新一次。改用 DiffUtil 之后就不需要了。

使用 RecyclerView 的 notifyItemRemoved 的一个坑:https://www.jianshu.com/p/1ee0966b6706

当我们需要 remove 掉一条数据(位置在 position )时,想要使用 RecyclerView 的动态效果,就需要调用 notifyItemRemoved。但是该方法不会使 position 及其之后位置的 itemView 重新 onBindViewHolder。所以不当使用会导致下标错乱

相关文章

网友评论

    本文标题:notifyDataSetChanged优化

    本文链接:https://www.haomeiwen.com/subject/lromcqtx.html