android recyclerview 为什么刷新位置错乱
1个回答
展开全部
先描述问题,如上图,我们选中了第三个item。然后滑动RecyclerView,让第三个item移出界面后,在滑回来,item的状态是否还在?
由于滑动,view的复用,会丢失之前item选中的状态,但是,但是,item上显示的数据为什么没有错乱呢?这是因为数据集合没有错乱。那么我们能不能把item上需要保存的状态,也与数据集合一同保存呢?这样是不是就不会错乱。当然可以,这样更容易理解。
在数据集合中需要预留本地字段来保存状态。
适配器中的部分代码:
[html] view plain copy
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.VH> {
//...
private ArrayList<UserBean> mLists = new ArrayList<>();
//...
}
由于滑动,view的复用,会丢失之前item选中的状态,但是,但是,item上显示的数据为什么没有错乱呢?这是因为数据集合没有错乱。那么我们能不能把item上需要保存的状态,也与数据集合一同保存呢?这样是不是就不会错乱。当然可以,这样更容易理解。
在数据集合中需要预留本地字段来保存状态。
适配器中的部分代码:
[html] view plain copy
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.VH> {
//...
private ArrayList<UserBean> mLists = new ArrayList<>();
//...
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询