RecyclerView刷新调用notifyItemRangeInserted的问题

RecyclerView刷新调用notifyItemRangeInserted的问题

先说问题

列表下拉刷新后迅速上拉加载下一页,下一页数据接口返回了,但是页面刷新没有显示出来。

原因

列表增加下拉刷新和上拉加载,通常会直接调用notifyDataSetChanged()方法刷新。但是这样在分页加载时,页面会闪一下的感觉,尤其是列表中有大量图片的时候更明显。
所以,我使用了notifyItemRangeInserted(int positionStart, int itemCount)方法来刷新分页数据。问题就出在这里,如果是上拉加载下一页的话,这样刷新没问题。但是我再下拉刷新时也调用了这个方法,然后把第一个参数positionStart设置为0了,看起来似乎也可以。但是实际上就出现了上面的问题。

解决办法

下拉刷新时调用notifyDataSetChanged()来刷新列表,上拉加载时使用notifyItemRangeInserted(int positionStart, int itemCount)。
具体原因大概跟后者方法内部实现方式有关,它在加载数据是要固定起始位置,防止页面闪动。如果有大佬知道更具体的原因,记得分享出来哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值