美文网首页
局部刷新

局部刷新

作者: 王家匀匀 | 来源:发表于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