Wer*_*erb 9 java android recycler-adapter android-recyclerview
public void onBindViewHolder(VH holder, int position, List<Object> payloads) {
onBindViewHolder(holder, position);
}
Run Code Online (Sandbox Code Playgroud)
我知道当我们想更新RecyclerView项目中的某些视图而不是全部时,我可以使用
public final void notifyItemChanged(int position, Object payload) {
mObservable.notifyItemRangeChanged(position, 1, payload);
}
Run Code Online (Sandbox Code Playgroud)
如该代码所示,param是一个对象,但是为什么在Adapter中将其更改为list,而我必须使用它list.get(0)来找到我的有效载荷?
谢谢
从Android文档:
部分绑定与完全绑定:
有效负载参数是来自notifyItemChanged(int,Object)或notifyItemRangeChanged(int,int,Object)的合并列表。如果有效负载列表不为空,则ViewHolder当前绑定到旧数据,并且适配器可以使用有效负载信息运行有效的部分更新。如果有效负载为空,则适配器必须运行完全绑定。适配器不应假定onBindViewHolder()将接收在notify方法中传递的有效负载。例如,当视图未附加到屏幕时,notifyItemChange()中的有效负载将被简单地删除。
这是一个列表,因为它是合并列表。notifyItemChanged在更新视图之前,您可能已经多次调用,每次调用都可能具有不同的有效负载。
例如,同时,多个线程可以同时请求带有有效载荷“收藏夹更新”和“图标更改”和“时间戳记更新”的项目更新。因此,假设您的有效载荷为第0个项目是不明智的。
| 归档时间: |
|
| 查看次数: |
1136 次 |
| 最近记录: |