RecyclerView中出现item重复问题的一次记录

这篇博客记录了在使用RecyclerView时遇到的item重复问题的排查过程。作者首先介绍了问题背景,用户反馈的笔记重复现象。接着,通过分析代码和日志,发现接口返回数据无误,问题可能出在前端。在问题排查中,怀疑notifyItemChanged(0)的不当使用可能导致问题。通过编写Demo验证,确实发现在调用该方法后,数据出现重复。最后,解释了问题的根本原因,即在数据结构变化时不应使用notifyItemChanged,而应使用处理结构变化的方法进行刷新。
摘要由CSDN通过智能技术生成

问题背景

前不久我们项目中由用户反馈说遇到笔记重复的问题,而且不只一次遇到类似的反馈。

这种重复笔记总是出现的feed流的中间位置,如下示意图所示:

这个图画的有点丑,凑合看,意思大概就是这样的。

接下来,我就得追踪下这个问题了,开始时我几乎就一口咬定是接口返回的有问题,由于前几次后端没有日志,好像之前的反馈就那么过去了,直到后面又出现一次重复笔记的问题,这次是公司内部员工出现的,于是后端也通过这个抓到了相应的日志,发现返回的笔记的确没有重复的,这下跑不掉了,就是前端的问题。

问题排查

于是,我又重新梳理了下代码流程,发现有一处比较有嫌疑:

        ...
        if (...) {
   
            mItems[0] = noteItem
        } else {
   
            mItems.add(0, noteItem
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值