4

我正在尝试在我的项目中实现谷歌的分页库。所有的东西都已经编码并且网络调用在loadInitial () 中工作,但它永远不会进入loadAfter ()。由于代码结构非常复杂,我不直接在这里发布代码。

这是存储库:

https://github.com/raghavsatyadev/PagingDemo

文件链接:https ://github.com/raghavsatyadev/PagingDemo/blob/master/app/src/main/java/com/rocky/invmx/modules/order/OrdersActivity.java

4

3 回答 3

8

这不是给定问题的答案,而是非常相似的问题。

正在onBindViewHolder使用getItem(int index)而不是从currentList. 正如公认的答案所说-需要调用getItem才能触发loadAfterDataSource

于 2018-06-25T08:32:25.180 回答
7

getItem(int index)在类中覆盖方法GenPagingRecyclerAdapter.java而不调用super.getItem(index). 如果您查看PagedListAdapter.java并深入研究方法调用,您会发现该方法在内部调用了该loadAfter方法。所以首先解决你的问题是getItem(int index)GenPagingRecyclerAdapter.java类中删除。因为你没有在其中做任何事情,如果你真的想覆盖getItem(int index)然后调用super.getItem(int index)at start。

于 2018-05-13T11:56:35.137 回答
1

调用loadInitial()后未调用loadAdapter( )的问题的解决方案是REMOVE

override fun getItem(position: Int): YourDataModel {
    return super.getItem(position)
}

来自您当前正在扩展PagedListAdapterRecyclerViewAdapter

于 2019-05-06T09:47:37.057 回答