繁体   English   中英

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

[英]How to get pagedlist size in android when using paging library with mvvm

拜托,我正在使用 android MVVM 和 retrofit 和分页库,问题是我无法获得pagedlist的大小。 UI 中的pagedlist = 0始终。

下面的代码是我获取列表大小的方式。

 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM