RecyclerView 超过 2个 itemType 时, RecyclerView的 复用 回收问题
RecyclerView + 顶部Banner 多ItemType 组合很常见,如果 itemType 是2个,
或者2个以下,都不会有问题,
如果adapter中的ItemType超过两个就会出现问题;
Rv的item复用机制第一层 setItemViewCacheSize中;
通过找源码可以找到
默认的缓存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的缓存数量;
想法如果错误,请留言告知