我是开发Android应用程序的新手,我正在尝试以"正确的方式"做所有事情.所以现在,我正在将新的Android Paging Library实现到我的项目中,我需要从网络服务器加载文章列表.
我有一个ArticlesRepository
类,它返回一个ArticleList
包含ArticleListItem
我想在RecyclerView中显示的实例的类.文章列表已经分页的服务器上,这样仓库发送对第一页的请求,并返回一个ArticleList
与page
属性设置为1
与articles
包含属性List<ArticleListItem>
的请求页面上的文章.我不知道一页上有多少篇文章.
现在,我能够实现一个PageKeyedDataSource<Integer, ArticleListItem>
,但它只获取第一页:
@Override
public void loadInitial(@NonNull LoadInitialParams<Integer> params, @NonNull LoadInitialCallback<Integer, ArticleListItem> callback) {
ArticleList list = load(1);
if (list != null) {
callback.onResult(list.articles, null, next(list));
}
}
@Override
public void loadBefore(@NonNull LoadParams<Integer> params, @NonNull LoadCallback<Integer, ArticleListItem> callback) {
ArticleList list = load(previous(params.key));
if (list != null) {
callback.onResult(list.articles, previous(list));
}
}
@Override
public void loadAfter(@NonNull LoadParams<Integer> params, @NonNull …
Run Code Online (Sandbox Code Playgroud) java android android-recyclerview android-viewmodel android-paging