2

我想从本地数据库加载1000 条分页记录。我可以通过设置查询限制来加载初始记录,但列表滚动时不会加载连续记录。

我从以下获取DataSource数据PagedList

  PagedList pagedList = new PagedList.Builder<Integer, ModelClass>()
            .setConfig(new PagedList.Config.Builder()
                    .setPageSize(50)
                    .setPrefetchDistance(50)
                    .setEnablePlaceholders(false)
                    .build())
            .setDataSource(new DataClassKeyed())
            .setMainThreadExecutor(new MainThreadExecutor())
            .setBackgroundThreadExecutor(new BackgroundThreadExecutor())
            .build();

    adapter.setList(pagedList);

数据源

公共类 DataClassKeyed 扩展 KeyedDataSource {

@Override
public Integer getKey(@NonNull ModelClass modelClass) {

    return modelClass.id;
}

@Override
public List<WorkOrder> loadInitial(int pageSize) {

    //query which sets data in list and
    return list;
}

@Override
public List<ModelClass> loadBefore(@NonNull Integer id, int pageSize) {
    //query which sets data in list
    return list;
}

@Override
public List<ModelClass> loadAfter(@Nullable Integer id, int pageSize) {
    // Return items adjacent to 'id'
    return list;
}

}

4

0 回答 0