最近在适配UI的时候碰到使用 RecyclerView 下拉刷新的时候,如果绑定的 List 对象在更新数据之前进行了 clear,而这时用户紧接着迅速上滑 RV,就会造成崩溃,而且异常不会报到你的代码上,属于RV内部错误。初次猜测是,当你 clear 了 list 之后,这时迅速上滑,而新数据还没到来,导致 RV 要更新加载下面的 Item 时候,找不到数据源了,造成 crash,这种情况下保证Adapter内的list和获取到的数据list不是同一个list就好.
Class MyAdapter extends RecyclerView.Adapter{
private ListmList;
…
public void notifySetListDataChanged(Listlist){
this.mList = list;
notifySetDataChanged();
}
}
每次数据更新(只要有变动都认为是更新)都调用adapter.notifySetListDataChanged(list),注意这里的list是变动更新后的数据list;
本文探讨了在使用RecyclerView进行下拉刷新时,如果绑定的List在更新前被清空,快速上滑可能导致的崩溃问题。分析了问题原因,并提供了解决方案:确保Adapter内的list与数据源list独立,避免直接覆盖。
3991

被折叠的 条评论
为什么被折叠?



