is it a bug or am I doing something wrong? Code in 🧵
rudolf.hladik
11/23/2021, 8:09 AM
Copy code
@Composable
fun EventHistoryList(pagingItems: LazyPagingItems<EventHistoryAdapter.Data>) {
LazyColumn(
modifier = Modifier.fillMaxSize(),
) {
for (index in 0 until pagingItems.itemCount) {
when (val item = pagingItems.peek(index)) {
is EventHistoryAdapter.Data.Header -> stickyHeader {
val header = (pagingItems.getAsState(index = index).value as EventHistoryAdapter.Data.Header)
EventHistoryHeader(label = header.title)
}
is EventHistoryAdapter.Data.Item -> item {
val data = (pagingItems.getAsState(index = index).value as EventHistoryAdapter.Data.Item)
EventHistoryItem(data)
}
}
}
}
m
myanmarking
03/24/2022, 6:30 PM
why is peek needed here? You will access it anyway. Why not extract to a variable before the when ?
myanmarking
03/25/2022, 6:22 PM
ok. So that’s because
items
block is lazy. If you do as i suggested, it would lose the ‘paging’ ability and load all pages. Do not do this!!