记录一次因为RecyclerView崩溃的bug

日常,我们经常用RecyclerView进行多种开发场景,比如列表式,代替了ListView,再比如,表格式,代替了GridView,还有我们经常说的瀑布流等等,但是,在Android8.0定制化终端上,我遇到过因为RecyclerView崩溃的bug,特此记录一下。

首先,我们可能会想到,RecyclerView已经用了好多次了,为什么还会报错呢?其实不然,有些终端虽然在已经支持了,但还是会遇到奇奇怪怪的错误。

就比如,我在滑动的时候遇到了IndexOutOfBoundsException,可是数据并没有下表越界啊,这是什么鬼?十次有一次崩溃,那可能是这两个地方出错了。

首先,我们重写LinearLayoutManager

这样,我们便可以拦截因为数组下表越界而出现的错误了,但是,你会发现,虽然不崩溃了,但是没有了数据!没了数据,那我们的RecyclerView将失去灵魂,所以,这里我加入EventBus的通知,当每次进入这里进行异常抛出的时候,就重新初始化RecyclerView的相关操作,问题便得到解决。

不过,有些问题,并非是这个地方抛出了异常,可能还跟另一个地方有关 

在原生代码中,可能这里也会有异常出现,大致可以理解为,因为滑动导致数组下表越界,当然,这里的下表越界,是我在跟代码的时候,发现还是因为RecyclerView出现的错误,至于具体发生了什么,有兴趣的朋友可以跟一下源码,欢迎一起探讨!进入正题,这里出现错误,怎么解决呢?

 

这是我这里的处理理解思路,并且还是用EventBus发送通知,进行重新初始化RecyclerView 。

这样问题得以解决!可能还有更好的思路,或者代码上有所误解,欢迎各位大神批评指出!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值