ローカルデータベースからページネーションに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);
情報源
public class DataClassKeyed extends 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;
}
}