Fix unnecessary recompose when calling LazyListState.isScrolledToEnd (#7598)

This commit is contained in:
Ivan Iskandar 2022-07-24 19:49:28 +07:00 committed by GitHub
parent bc1f6ba517
commit 2e15be59af
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -8,7 +8,15 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
fun LazyListState.isScrolledToEnd() = layoutInfo.visibleItemsInfo.lastOrNull()?.index == layoutInfo.totalItemsCount - 1 @Composable
fun LazyListState.isScrolledToEnd(): Boolean {
return remember {
derivedStateOf {
val lastItem = layoutInfo.visibleItemsInfo.lastOrNull()
lastItem == null || lastItem.size + lastItem.offset <= layoutInfo.viewportEndOffset
}
}.value
}
@Composable @Composable
fun LazyListState.isScrollingUp(): Boolean { fun LazyListState.isScrollingUp(): Boolean {