Android pageKeyed数据源未调用

时间:2019-07-17 22:42:08

标签: android kotlin android-architecture-components android-paging android-paging-library

我正在尝试使用Android分页库在我的应用程序中实现分页,但是我被困在一个地方。并非从工厂创建dataSource。下面的代码段。

private fun getLivePagedListBuilder(queryString: String): LivePagedListBuilder<Int, News> {

        val dataSourceFactory = object : DataSource.Factory<Int, News>() {
            override fun create(): DataSource<Int, News> {
                return NewsDataSource(queryString)
            }
        }
        return LivePagedListBuilder(dataSourceFactory, config)
    }

1。未调用create方法。因此,tht方法中的return不会触发。

我的数据源

class NewsDataSource(val searchQuery: String) : PageKeyedDataSource<Int, News>() {
        override fun loadInitial(params: LoadInitialParams<Int>, callback: LoadInitialCallback<Int, News>) {
            api.searchNews(searchQuery, Constants.perPageLimit, 1)
                .enqueue(object : Callback<NewsResponse> {
                    override fun onFailure(call: Call<NewsResponse>, t: Throwable) {
                        Log.d("TAG1", "Failure")
                    }

                    override fun onResponse(call: Call<NewsResponse>, response: Response<NewsResponse>) {
                        callback.onResult(response.body()?.news, response.body()?.page - 1, response.body()?.page + 1)
                    }
                })
        }
    }

API返回页码,我打算在滚动结束时加载下一页

  1. 由什么决定DataSource.Factory<Int, News>()中Key的数据类型

我真的很坚持:(

0 个答案:

没有答案