Пейджинг Android RecyclerviewAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Пейджинг Android Recyclerview

Сообщение Anonymous »

Попытка пейджинга recyclerview.
Я ожидал, что прокрутка загрузит текст, но когда я запускаю приложение, вся информация загружается. Что не так с кодом?

Код: Выделить всё

inner class PostPagingSource : PagingSource(){
override suspend fun load(params: LoadParams) : LoadResult{
try{
Log.d("Paging", "Loading page with key: ${params.key}")
val query = if (params.key == null){
postRef.orderByKey().limitToFirst(params.loadSize)
} else {
postRef.orderByKey().startAfter(params.key).limitToFirst(params.loadSize)
}
val snapshot = query.get().await()
val posts = snapshot.children.mapNotNull { it.getValue(Post::class.java) }
Log.d("Paging", "Loaded ${posts.size} posts")
return LoadResult.Page(
data = posts,
prevKey = null,
nextKey = snapshot.children.lastOrNull()?.key
)
} catch (e: Exception) {
return LoadResult.Error(e)
Log.e("Paging", "Error loading page: ${e.message}")
}
}

override fun getRefreshKey(state: PagingState): String? {
val position = state.anchorPosition ?: return null
val closestPage = state.closestPageToPosition(position)
return closestPage?.nextKey
}

}

val postsFlow = Pager(
config = PagingConfig(
pageSize = 4,
initialLoadSize = 4,
enablePlaceholders = false
),
pagingSourceFactory = { repository.PostPagingSource() }
).flow.cachedIn(viewModelScope)
  • 2024-11-30 15:11:37.606 6897-6897 Пейджинг Загружено 4 сообщения
  • 2024-11- 30 15:11:37.661 6897-6897 Пейджинг Загрузка страницы с ключом: post4
  • 2024-11-30 15:11:37.706 6897-6897 Пейджинг Загружено 1 сообщений
  • 2024-11-30 15:11:37.707 6897-6897 Пейджинг Загрузка страницы с ключ: post5
    30 ноября 2024 г. 15:11:37.713 6897-6897 Пейджинг Загружено 0 сообщений
Он загружает все данные одновременно.
I попытался изменить конфигурацию InitialLoadSize, но результат не изменился.

Подробнее здесь: https://stackoverflow.com/questions/792 ... iew-paging
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»