使用带有mvvm的分页库时如何在android中获取pagedlist大小

问题描述 投票:0回答:1

拜托,我正在使用带有改造和分页库的 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();
            }
        });
    }
android design-patterns mvvm pagedlist android-paging-library
1个回答
1
投票

PagedList
是增量加载的,因此它的
size
会随着时间的推移而变化,并且在调用
submitList
之前始终为0(禁用占位符),并且它已经有机会加载一些项目。

您应该利用

PagedListAdapter
上的 API。

如果您对当前呈现列表的当前大小感兴趣,可以使用

PagedListAdapter.currentList.size

如果您想在出现新的

PagedList
时收到通知,可以使用
PagedListAdapter.onCurrentListChanged
。该方法在初始加载和 diffutil 运行后调用,因此它与新的
PagedList
出现时同步。

请注意,

PagedList.size
包括占位符。如果您启用了占位符,但您只对加载的项目感兴趣,则应该使用
PagedList.loadedCount

© www.soinside.com 2019 - 2024. All rights reserved.