我们在列表数据更新某一个状态:
1、往往由于Item view 中包含有图片,自然而然图片(Glide动画)刷新,这样会有闪一下效果,用户体验不是很好。
2、ItemView 重绘,由白白损耗性能。
那么RecyclerView 有没有一种只刷新某一个View呢?
其他在源码中是有的。
两个都是 onBindViewHolder只是参数不一样,实际上payloads这个参数就是用来区分局部刷新的。我们只需要在adapter 重新这两个方法。
我们只需要在调用做区分就可以了。
总结:
1、首先重写 onBindViewHolder(@NonNull CommonViewHolder viewHolder, int position, @NonNull List<Object> payloads)
2、调用: notifyItemChanged(int position, @Nullable Object payload)
3、在局部刷新 判断 payloads 没有值,全局刷新;有值局部刷新