public void onBindViewHolder(VH holder, int position, List<Object> payloads) {
onBindViewHolder(holder, position);
}
我知道,当我们要更新一些人认为不是所有RecyclerView项目,我可以使用
public final void notifyItemChanged(int position, Object payload) {
mObservable.notifyItemRangeChanged(position, 1, payload);
}
作为该代码中所见,参数是一个对象,但为什么在适配器将其更改为列表,我必须用list.get(0)
找我有效载荷?
谢谢
从Android的文档:
部分绑定VS全绑定:
有效负载参数是一个合并列表从notifyItemChanged(INT,对象)或notifyItemRangeChanged(INT,INT,对象)。如果有效载荷列表不为空,则ViewHolder当前绑定到旧数据和适配器可以使用运行有效载荷信息的有效部分更新。如果有效载荷是空的,适配器必须运行一个完整的绑定。适配器不应该假设在通知方法通过有效载荷将通过onBindViewHolder被接收()。例如,当图未附着到屏幕上,在notifyItemChange有效载荷()将被简单地丢弃。
这是一个列表,因为它是一个合并列表。你可能已经潜在地称为notifyItemChanged
多次的视图更新之前,每次有可能不同的有效载荷。
例如,在同一时间,多个线程可同时请求与有效载荷“最爱计数更新”和“图标变化”和“时间戳更新”的项目更新。因此,这不是明智的,假设你的负载是第0项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句