pagedList 一次加载所有项目

pagedList loading all items at once

我正在尝试将架构组件集成到我的应用程序中,即分页、LiveData、ViewModel。 Room 之前已经集成和测试过,所以我可以从我的 DAO class return a DataSource.Factory<Integer, DbEntity>。这是我创建 PagedList 的 LiveData 的代码:

 PagedList.Config pagedListConfig =
            (new PagedList.Config.Builder()).setEnablePlaceholders(true)
                .setPrefetchDistance(5)
                .setPageSize(10)
                .setInitialLoadSizeHint(10)
                .build();

        LiveData<PagedList<DbEntity>> dbEntities = new 
LivePagedListBuilder<>(DAO.getItemList(timeNow), pagedListConfig).build();

我正在观察我片段中的实时数据 class:

viewModel.dbEntities.observe(this, new Observer<PagedList<DbEntity>>() {
            @Override
            public void onChanged(@Nullable PagedList<DbEntity> inboxEntities) {
                adapter.submitList(inboxEntities);
            }
        });

问题是列表绘制时间太长,列表 (1300) 中的所有项目似乎都是在第一次绘制时绘制的。

我在两个地方验证了这一点:onChanged 被调用时 PagedList 大小等于 1300,并且适配器的 onBindViewHolder 被调用到所有位置直到 1300。

我是不是哪里做错了?

成功了。它在禁用占位符后返回正确的元素数