https://developer.android.com/topic/libraries/architecture/paging/v3-paged-data?hl=ko
- Paging3 라이브러리를 사용하여 LazyColumn 을 구현했지만, 초기 로드 시 여러 페이지에 대한 API 호출로 인해 처음에 가져오는 데이터 사이즈가 터무니없이 크다고 느껴졌다.
- 안타깝게도 문제의 원인을 찾지 못했다.
- GPT 에 따르면 다음 페이지를 미리 로드하여 사용자가 스크롤할 때, 부드러운 사용자 경험을 제공한다고 하지만, PagingConfig 클래스를 수정해 봐도 반복되는 API 호출은 막을 수 없었다.
- 만약 미리 로드하는 것이 맞다면, 사용자가 보지 않는 데이터가 문제가 되지 않을까 하는 의문이 된다.
- 안타깝게도 문제의 원인을 찾지 못했다.
https://manavtamboli.medium.com/infinite-list-paged-list-in-jetpack-compose-b10fc7e74768
@Composable
fun LazyListState.OnBottomReached(
loadMore : () -> Unit
){
val shouldLoadMore = remember {
derivedStateOf {
val lastVisibleItem = layoutInfo.visibleItemsInfo.lastOrNull()
?: return@derivedStateOf true
lastVisibleItem.index == layoutInfo.totalItemsCount - 1
}
}
// Convert the state into a cold flow and collect
LaunchedEffect(shouldLoadMore){
snapshotFlow { shouldLoadMore.value }
.collect {
// if should load more, then invoke loadMore
if (it) loadMore()
}
}
}
'안드로이드 > Compose' 카테고리의 다른 글
[Compose] TextField 에서 키보드 hide 처리하기 (0) | 2024.11.23 |
---|---|
[Compose] Side Effect와 Effect API(LaunchedEffect, rememberCoroutineScope 등) (0) | 2024.11.23 |
[Compose] TextField에서 엔터키 사용하기 (0) | 2024.11.21 |