Я использовал свойства FirstvisibleIteMindex и FirstVisibleItemScrollOffset из lazyliststate , чтобы узнать, когда показывать кнопку.
Код: Выделить всё
@Composable
fun MyComposable(
onScroll: (firstVisibleItemIndex, firstVisibleItemScrollOffset) -> Unit
) {
val lazyScrollState = rememberLazyListState()
LaunchedEffect(
lazyScrollState.firstVisibleItemIndex,
lazyScrollState.firstVisibleItemScrollOffset
) {
onScroll(firstVisibleItemIndex, firstVisibleItemScrollOffset)
}
LazyColumn(state = lazyScrollState) {
items()
}
}
После анализа инспектора макета я заметил, что при прокрутке происходит многие переоборудования элементов Lazycolumn. Мое первое предположение было то, что вызов onscroll вызывал проблему, даже если я оставлю запуск warneeckect пустыми, все еще происходят переоборудование, что заставило меня понять, что переоборудования были вызваны использованием FirstVisibleItemindex и FirstVisibleMemCrollOffset , а не Code, выполненным Code -Codoll>. /> Я также попытался использовать другие методы производительности для JetPack Compose, например, использование DeviveStateOf < /code> для этих полей и даже экстернализация логики из композиции, но ни один из них не был успешным. У кого -нибудь есть подсказка?
Подробнее здесь:
https://stackoverflow.com/questions/775 ... lazycolumn