RecyclerView + banner 滑动时 banner重置的问题

RecyclerView 超过 2个 itemType 时, RecyclerView的 复用 回收问题

RecyclerView + 顶部Banner 多ItemType 组合很常见,如果 itemType 是2个,
或者2个以下,都不会有问题,
如果adapter中的ItemType超过两个就会出现问题;

Rv的item复用机制第一层  setItemViewCacheSize中;
通过找源码可以找到
3066171-42867037d6792ff7.png
image.png
3066171-2763362924aa9b3f.png
image.png
3066171-a8e306e95c21e9cd.png
image.png
3066171-325f73b1ea55fa36.png
image.png
3066171-bdcaa9f03dbb88fb.png
image.png
默认的缓存itemType数量是两个,意思就是 Rv缓存的不是单纯的一个个item,
而是 itemType,然后再是item;

如果adapter中itemType超过默认的2个,
那么滑动的时候,当itemType中所有的item滑出界面后,且有新的itemType创建时,
滑出界面的itemType中所有item,都会被回收;
当被回收的itemType中item重新显示在界面上时,会重新触发onCreateViewHolder;

如果在项目中 的首页  需要用到Rv的itemType,且itemType多余2个,那么需要使用

 //这里设置多itemType时的缓存的itemType数量
  recyclerView.setItemViewCacheSize(5);

来设置itemType的缓存数量;

想法如果错误,请留言告知
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值