将分页库与 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.