所以,我正在尝试关注分页库。在大多数示例中,它们具有以下内容:
@Override
public void onBindViewHolder(@NonNull PokemonViewHolder pokemonViewHolder, int i) {
Pokemon pokemon = getItem(i);
if (pokemon != null) { // <-- why this check here?
pokemonViewHolder.bind(pokemon);
}
}
为什么必须检查适配器中的项目是否为空?我不了解 PagedListAdapter 流的内部结构。谁能解释一下?
我的猜测是,一旦数据源更新,我们在适配器上有一个观察者,它会在某个时刻从 UI 线程“核对”适配器的内容,因此这个项目位置已经过时了?