Skip to content

Instantly share code, notes, and snippets.

@hoc081098
Created August 19, 2023 18:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hoc081098/6ae69f68539cce3926702faea66aecfc to your computer and use it in GitHub Desktop.
Save hoc081098/6ae69f68539cce3926702faea66aecfc to your computer and use it in GitHub Desktop.
rememberIsScrollingUpState.kt
@Composable
private fun LazyListState.rememberIsScrollingUpState(): State<Boolean> {
var previousIndex by remember(this) { mutableIntStateOf(firstVisibleItemIndex) }
var previousScrollOffset by remember(this) { mutableIntStateOf(firstVisibleItemScrollOffset) }
return remember(this) {
derivedStateOf {
if (previousIndex != firstVisibleItemIndex) {
previousIndex > firstVisibleItemIndex
} else {
previousScrollOffset >= firstVisibleItemScrollOffset
}.also {
previousIndex = firstVisibleItemIndex
previousScrollOffset = firstVisibleItemScrollOffset
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment