RecyclerView局部刷新
CommentContents
使用recyclerView
时一般用notifyItemChanged(int position)
刷新列表某一项,onBindViewHolder(@NonNull VH holder, int position)
会被调用,在这里处理ui变化。
当频繁调用(如修改进度百分比)时,该item的onBindViewHolder
会被频繁调用,如果还有耗时操作或图片加载,会导致资源浪费或图片闪动。而我们需要的只是修改该item的部分UI,其他操作都是不必要的。
找了下recyclerView的api,确实有部分刷新item的方法:
1 | /** |
根据以上注释,实现onBindViewHolder(@NonNull VH holder, int position, @NonNull List<Object> payloads)
1 | public void onBindViewHolder(@NonNull VH holder, int position, @NonNull List<Object> payloads){ |
按以上方法实现刷新item局部UI后,就会发现图片不再闪动了,大功告成!