场景
因为RecyclerView自带ViewHoler,所以会自动复用Item。
有时候因为这个会产生一些条目数据错误。
最简单的停止复用
recyclerView.getRecycledViewPool().setMaxRecycledViews(viewType,0);
参数说明
setMaxRecycledViews(int viewType,int max);
viewType: 值必须和getItemViewType()的返回值保持一致。如果是多类型Item,选择不想用复用的item的值。
max:设置缓存池里最多持有几个ViewHolder,设置为0就不存在复用。
缺点
如果这样设置后,列表条目增加,数据变大时,会造成性能下降,甚至是oom.
列表数据不多的场景可以这样做。
数据偏多的时候还是建议使用SparseArray缓存item的状态。