Har*_*Tiu 5 paging pagination android android-recyclerview android-jetpack
让我简要介绍一下我要做什么。因此,基本上,我是Android Jetpack中的此分页库的新手,并且正在尝试实现分页列表。后端已经完成了按请求分页的部分(默认情况下,后端每页返回25个项目),所以我要做的就是发出请求并指定要显示的页面,然后将返回我需要的项目。我能够显示和进行loadInitial()
工作,但是当我滚动到最低的项目时,它不会触发loadAfter()
。
我PagedListAdapter
和我RecyclerView
非常直白,因此我认为在这里张贴它不会有所帮助。在onCreateViewHolder
返回的数据绑定ViewHolder。在onBindViewHolder
刚刚叫我viewholder内的方法和设置的项目。我没有重写该getItem()
方法。关于我的适配器和DiffCallback
。
但是,下面是我的其他代码段。请注意,为了隐私起见,我已经修改了变量名和方法名。
我的LivePagedListBuilder配置:
public MyViewModel() {
PagedList.Config config =
new PagedList.Config.Builder()
.setPageSize(1)
.setPrefetchDistance(1)
.build();
items = new LivePagedListBuilder<>(myDataSourceFactory, config).build();
}
public LiveData<PagedList<Item>> getItems() {
return items;
}
Run Code Online (Sandbox Code Playgroud)
我在View中观察LiveData的方式:
viewModel.getItems().observe(this, items -> {
adapter.submitList(items);
});
Run Code Online (Sandbox Code Playgroud)
我的数据源:ItemKeyedDataSource
private int defaultPage = 1;
public void loadInitial(@NonNull LoadInitialParams<Integer> params, @NonNull
LoadInitialCallback<Item> callback) {
remoteRepository.getItems(String.valueOf(defaultPage))
...
}
public void loadAfter(@NonNull LoadParams<Integer> params, @NonNull LoadCallback<Item> callback) {
remoteRepository.getItems(String.valueOf(params.key))
...
}
public Integer getKey(@NonNull Item item) {
return defaultPage++;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
627 次 |
最近记录: |