美文网首页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