当我将新数据插入我的RecyclerView时,我会执行以下操作:
if(mRecyclerView.getAdapter() != null)
mRecyclerView.swapAdapter(newAdapter, false);
else
mRecyclerView.setAdapter(newAdapter);
当调用swapAdapter
时,当我滚动列表时,仍然会调用旧适配器的onBindViewHolder
方法。适配器是同一类,只是新的适配器比旧的更多。因此,当我滚动到仅存在于新适配器中的项目时,在OLD适配器上调用了一个越界异常,因为它也被调用。很沮丧。 swapAdatper
是否意味着以不同于文档或其他方式的方式工作?典型