Прослушивание SwipeableState.progress.fraction отстает от приложения
Немного предыдущего контекста полезно, чтобы понять цель и найти лучшее решение или найти здесь ошибку.
В основном у меня есть LazyColumn с вложенной прокруткой и swipeableState.
Вложенная прокрутка прослушивает дельта-значения и использует дельта-значение, чтобы сделать
чтобы отслеживать количество прокрутки, а затем возвращать Offset.Zero, позволяя LazyColumn прокручивать, как будто ничего не было. SwipeableState помогает мне определить, какой процент прокрутки пользователя составляет от 0 до X. Например: высота привязки от 0 до 300.dp. Пользователь прокрутил на 150.dp. так что в основном я получаю, какой возврат
0.5000000f
То, что я делаю, это изменение альфа-значений/отступов и т. д. в процентах (в зависимости от состояния)
Хорошо, это был контекст, теперь ПРОБЛЕМА.
Всякий раз, когда я слушаю, похоже, что все приложение тормозит. Чтобы упростить получение этого примера, я не буду изменять альфу/заполнение по мере увеличения дроби , поэтому ничего не будет перекомпоновано. ( Они все пропущены, по крайней мере, так мне сказал Android Studio IDE Dolphin )
Просто слушая
Вот код:
val swipeableFraction by remember {
derivedStateOf {
val formattedFraction = String.format("%.2f", swipeableState.progress.fraction).toFloat() // format to have 2 numbers like 0.82 instead of 0.823258142823
formattedFraction
}
}
val formattedValueToUse by remember(swipeableFraction) {
mutableStateOf(swipeableFraction)
}
Есть ли лучшее решение или улучшение? или мне не хватает какого-то принципа составления? Я пытался понять, что происходит, и пытался найти некоторые решения/отладку.
Я очень ценю любой ответ или помощь.
Благодарю вас!