Я перешел с библиотеки Paging 2 на библиотеку Paging 3 и теперь использую PagingSource для загрузки страниц данных с сервера. Но у меня возникли проблемы с пониманием метода getRefreshKey, который здесь необходимо переопределить. Я нашел несколько примеров кода, как его реализовать в зависимости от ключа, используемого для получения последующих страниц, но до сих пор не понял. На основе этих примеров я написал следующий код:
Код: Выделить всё
override fun getRefreshKey(state: PagingState
, User>): Pair? {
return state.anchorPosition?.let { anchorPosition ->
state.closestPageToPosition(anchorPosition)?.prevKey
}
}
Но это ничего не изменит, если я заставлю его всегда возвращать ноль:
Код: Выделить всё
override fun getRefreshKey(state: PagingState
, User>): Pair? = null
Так есть ли причина, по которой я не могу просто выбрать самое простое решение? Или есть вариант использования, которого я не вижу?
Подробнее здесь:
https://stackoverflow.com/questions/685 ... refreshkey