美文网首页
局部刷新

局部刷新

作者: 王家匀匀 | 来源:发表于2020-11-24 09:53 被阅读0次

override fun onBindViewHolder(holder: ViewHolder, position: Int, payloads: MutableList<Any>) {}

注意不要重写
super.onBindViewHolder(holder, position, payloads)

父类实际调用了 全部view刷新的方法。
查看源码如下:

public void onBindViewHolder(@NonNull VH holder, int position,
                @NonNull List<Object> payloads) {
            onBindViewHolder(holder, position);
        }

比如在 override fun onBindViewHolder(holder: ViewHolder, position: Int, payloads: MutableList<Any>) {}
中这样写,

  if (payloads.isNotEmpty()) {
                when (payloads[0]) {
                    UPDATE_AUDIO_COLLECT -> {
                        setCollectView(holder.binding as ItemAudioBinding, item.oralVO)
                    }
                    UPDATE_AUDIO_LIKE -> {
                        setLikeView(holder.binding as ItemAudioBinding, item.oralVO)
                    }
                    else -> {
                        onBindViewHolder(holder, position)
                    }
                }
            } else {
                onBindViewHolder(holder, position)
            }

使用时:

adapter.notifyItemChanged(pos, MyAdapter.UPDATE_AUDIO_COLLECT)

相关文章

网友评论

      本文标题:局部刷新

      本文链接:https://www.haomeiwen.com/subject/owzdiktx.html