最近在适配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;