问题描述:RecyclerListView 中的项,每6项重复显示
需求
我的目的是使用 RecyclerListView 展示视频,初次渲染时,展示视频的模糊图片。点击时下载并观看。
问题描述
初次渲染成功,当点击第一个视频时,该子组件的状态更新,由展示图片变成一个视频播放器。此时是成功的。但是,滑动过程中发现,第7项,第13项......都被更新了。
调查结果
RecyclerListView 是单元回收机制,我的目的也是为了在展示大量图片视频时,可以减少内存的占用。它存在一个缓存池或者说是回收池,大小应该是6。当展示超过这个池的大小时。就会对比池中是否有可用的模板,发现有,就用了,所以重复了。因此得出结论,这个玩意好像不支持子组件的状态更新。就有了解决思路。
解决方案
- 设置回收池的大小与项的个数一样
- 禁用回收机制
- 让子组件不在具有状态
感想
我采用的方案 2, 禁用回收机制,但是这种方式与我使用它的目的背道而驰。
disableRecycling = true
各位大佬还有什么方案解决这个问题吗?