要禁止RecyclerView的复用,可以通过以下方法实现:
- 在RecyclerView的Adapter中,重写getItemViewType方法,确保每个Item都返回不同的ViewType,这样RecyclerView就不会复用相同类型的Item。
@Override
public int getItemViewType(int position) {
return position;
}
- 在RecyclerView的LayoutManager中,设置setRecycleChildrenOnDetach(false),禁止回收子View。
recyclerView.setLayoutManager(new LinearLayoutManager(context) {
@Override
public boolean supportsPredictiveItemAnimations() {
return false;
}
@Override
public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
//禁止回收子View
setRecycleChildrenOnDetach(false);
super.onLayoutChildren(recycler, state);
}
});
通过以上方法就可以实现禁止RecyclerView的复用效果。