美文网首页
recyclerView的局部刷新

recyclerView的局部刷新

作者: 小企鹅丶zxy | 来源:发表于2020-03-19 14:26 被阅读0次

    前言:为什么要使用recyclerView的局部刷新功能,例如我们的列表有语音和视频正在播放,如果这时候需要刷新这个item上的某一个控件的数据,如果直接notifyItemChanged(position)就会直接导致视频或音频停止播放,所以我们有的时候会用到这个局部刷新功能。不废话直接上代码。

    1.重写onBindViewHolder方法

        public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position, @NonNull List payloads) {}
    

    2.根据payloads来刷新自己需要刷新的控件

    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position, @NonNull List payloads){
    
    if (payloads.size() == 0 && payloads.isEmpty()) {   
     Log.e("120", "非局部刷新" + payloads);    
    onBindViewHolder(holder, position);
    } else {
     Log.e("120", "局部刷新" + payloads);
    int payload;
    try {   
     payload = (int) payloads.get(0);
    } catch (Exception e) { 
       return;
    }
    if (payload == 1) {
    Holder.setText(“123”);//需要单独刷新的控件
    }
    }
    

    3.调用方式:
    notifyItemChanged(positionIntent,1)

    相关文章

      网友评论

          本文标题:recyclerView的局部刷新

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