Ink
09/28/2023, 12:25 PMval scrollState = rememberLazyListState(0)
var isLastItemVisible by remember { mutableStateOf(false) }
LaunchedEffect(scrollState) {
while (!isLastItemVisible) {
val lastVisibleItemIndex = scrollState.layoutInfo.visibleItemsInfo.lastOrNull()?.index
val totalItemsCount = scrollState.layoutInfo.totalItemsCount
isLastItemVisible = lastVisibleItemIndex != null && lastVisibleItemIndex == totalItemsCount - 1
}
onLastItemSeen()
}
When I add any delay at last line in loop there is everything right.
I display items in LazyRow.abbic
09/28/2023, 1:40 PMval listState = rememberLazyListState()
val isLastItemVisible by remember {
derivedStateOf {
val lastVisibleItemIndex = listState.layoutInfo.visibleItemsInfo.lastOrNull()?.index
val totalItemsCount = listState.layoutInfo.totalItemsCount
lastVisibleItemIndex != null && lastVisibleItemIndex == totalItemsCount - 1
}
}
LaunchedEffect(key1 = isLastItemVisible) {
if (isLastItemVisible) onLastItemSeen()
}