将分页库与 mvvm 一起使用时如何在 android 中获取分页列表大小
How to get pagedlist size in android when using paging library with mvvm
拜托,我正在使用 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
包括占位符。如果你有 placeholdersEnabled,但你只对加载的项目感兴趣,你应该使用 PagedList.loadedCount
.
拜托,我正在使用 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
包括占位符。如果你有 placeholdersEnabled,但你只对加载的项目感兴趣,你应该使用 PagedList.loadedCount
.