第二篇为DiffUtil差量算法的搭建
1.在基类adapter中重写onBindViewHolder
@Override
public void onBindViewHolder(@NonNull VH holder, int position, @NonNull List<Object> payloads) {
if (payloads.isEmpty()) {
onBindViewHolder(holder, position);
return;
}
T item = null;
if (position >= 0 && position < data.size()) {
item = data.get(position);
}
update(holder, item, payloads);
//设置item的点击事件/长按事件
bindViewClickListener(holder, position);
}
/**
* 可选实现,如果你是用了[payloads]刷新item,请实现此方法,进行局部刷新
*/
protected void update(@NonNull VH holder, T item, List<Object> payloads) {
}
public void setDiffData(DiffUtil.DiffResult result, List<T> newList) {
data.clear();
data.addAll(newList);
result.dispatchUpdatesTo(this);
}
2.在adapter中实现update
public class MainAdapter extends BaseQuickAdapter<MainBean, BaseViewHolder