拜托,我正在使用带有改造和分页库的 android MVVM,问题是我无法获取
pagedlist
的大小。
pagedlist = 0
始终在 UI 中。
下面的代码是我获取列表大小的方式。
private void getAllAds() {
userHomeViewModel.getHomeAllAdsPagedList().observe(this, new Observer<PagedList<AllAdsModel>>() {
@Override
public void onChanged(PagedList<AllAdsModel> list) {
allAdsModelPagedList = list;
Toast.makeText(AllAdsActivity.this, ""+list.size(), Toast.LENGTH_SHORT).show();
//list.size = 0!!!!
initUserAllAds();
}
});
}
PagedList
是增量加载的,因此它的size
会随着时间的推移而变化,并且在调用submitList
之前始终为0(禁用占位符),并且它已经有机会加载一些项目。
您应该利用
PagedListAdapter
上的 API。
如果您对当前呈现列表的当前大小感兴趣,可以使用
PagedListAdapter.currentList.size
如果您想在出现新的
PagedList
时收到通知,可以使用 PagedListAdapter.onCurrentListChanged
。该方法在初始加载和 diffutil 运行后调用,因此它与新的 PagedList
出现时同步。
请注意,
PagedList.size
包括占位符。如果您启用了占位符,但您只对加载的项目感兴趣,则应该使用 PagedList.loadedCount
。