Android RecyclerView 滑动过程中刷新数据崩溃异常 notifyDataSetChanged

本文深入解析在使用RecyclerView时,为何在滑动过程中刷新数据会导致应用崩溃,并提供了解决方案。崩溃原因在于尝试在布局计算或滚动过程中调用数据刷新方法。文章通过一个具体的场景——商品列表秒杀倒计时结束后删除商品,阐述了问题出现的情境,以及如何通过立即调用notifyDataSetChanged()来避免此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不是IndexOutOfBoundsException,这个问题很简单,你改list数据的下一行必须刷新rv,如果你等干完其他事后(比如请求数据)才刷新就会偶发这种问题,解决就是改list后紧跟notify。

 

是用户正在滑动过程中,你想刷新数据了。

崩溃场景:商品列表秒杀的倒计时,当倒计时结束时删除该商品,用户如果恰好正在滑动就会崩溃。

java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling android.support.v7.widget.RecyclerView ...
at android.support.v7.widget.RecyclerView.assertNotInLayoutOrScroll(RecyclerView.java:2769)
at android.support.v7.widget.RecyclerView$RecyclerViewDataObserver.onChanged(RecyclerView.java:5177)

解决见我的另一篇博客:https://blog.csdn.net/weimingjue/article/details/103504948

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值