RecyclerView局部刷新

要求:一系列的item,然后只需要刷新其中的两个item,其他的不变化,保持原状。

  • 设置每个图片的tag,然后刷新的时候,对比每个tag的值,相等的话就不用重新刷新
  • Glide那些控件的原因,重新加载后,造成图片刷新。

后面解决的办法:RecyclerView做局部刷新还是非常容易的,其实就是使用好带payload参数的这个notifyItemChanged方法,以及重写带payload的这个onBindViewHolder方法,在onBindViewHolder中去刷新你想更新的控件即可。
其中onBindViewHolder,有两个,可以通过payloads是否为空,来进行刷新。源码:

    /* @param holder The ViewHolder which should be updated to represent the contents of the
         *               item at the given position in the data set.
         * @param position The position of the item within the adapter's data set.
         * @param payloads A non-null list of merged payloads. Can be empty list if requires full
         *                 update.
         */
        public void onBindViewHolder(VH holder, int position, List<Object> payloads) {
            onBindViewHolder(holder, position);
        }

主要看其中的注释payloads A non-null list of merged payloads. Can be empty list if requires full * update.

下面的是我的代码,可以通过notifyItemChanged(lastSlectCount,"abc");notifyItemChanged(position);, 前面的是刷新原item,后面的是刷新目标item。

  @Override
    public void onBindViewHolder(ViewHolder holder, int position, List<Object> payloads) {
        if (payloads.isEmpty()) {
            onBindViewHolder(holder, position);
        } else {
            if (lastSlectCount != selectCount && lastSlectCount == position) {
                holder.tvCount.setActivated(false);
                holder.ivSelect.setVisibility(View.GONE);
            }
        }
    }
 @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
 // todo
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 12月1号高考报名 12月3号高考照相 12.24我们高中最后一次平安夜吃苹果 12.31我们高中最后一次跨年你会...
    阿呵谦嫂哦阅读 546评论 0 0
  • 遥想中 我是你窗外的一角蓝天 白云飘飘 是我淡淡的诗行 风筝翩翩 化做句逗的影子 也许,你还未卒读 那些诗行呵 已...
    潇潇雨疏阅读 2,055评论 40 68
  • 师蠹 (天气骤寒,不便外出,翻看十几年前日记,找出这首小诗。想起当年进县城办事,回家时与中学同学相遇,他冒名顶替上...
    方塘居士阅读 155评论 0 0
  • 呦呦鹿鸣兮,食野之萍 身据大荒兮,晓日通明 山巍巍兮云绕 仙人慕清静而归隐 水荡荡兮雾锁 神女乐悠然而飞行 牧歌高...
    又见月伴邻阅读 634评论 0 0
  • “我们一起吧,一起去上海!”这句话是两年前的我们彼此身在不同城市时许下的约定。 那是2015年9下旬的某一天,我们...
    汪小眼阅读 512评论 0 2