From aeb9cbf8c2bf963656dcf73630630d0d1a9f9380 Mon Sep 17 00:00:00 2001 From: ya0211 Date: Wed, 7 Jun 2023 13:17:42 +0800 Subject: [PATCH] Prefer mutableInt(Float)StateOf instead of mutableStateOf --- .../kotlin/com/sanmer/geomag/ui/component/Scrollbar.kt | 3 ++- .../kotlin/com/sanmer/geomag/ui/utils/LazyListState.kt | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/sanmer/geomag/ui/component/Scrollbar.kt b/app/src/main/kotlin/com/sanmer/geomag/ui/component/Scrollbar.kt index 0ce5da1..5963991 100644 --- a/app/src/main/kotlin/com/sanmer/geomag/ui/component/Scrollbar.kt +++ b/app/src/main/kotlin/com/sanmer/geomag/ui/component/Scrollbar.kt @@ -32,6 +32,7 @@ import androidx.compose.runtime.Immutable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.Stable import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableFloatStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberUpdatedState @@ -248,7 +249,7 @@ private fun Scrollbar( // Used to immediately show drag feedback in the UI while the scrolling implementation // catches up - var interactionThumbTravelPercent by remember { mutableStateOf(Float.NaN) } + var interactionThumbTravelPercent by remember { mutableFloatStateOf(Float.NaN) } var track by remember { mutableStateOf(ScrollbarTrack(packedValue = 0)) } diff --git a/app/src/main/kotlin/com/sanmer/geomag/ui/utils/LazyListState.kt b/app/src/main/kotlin/com/sanmer/geomag/ui/utils/LazyListState.kt index 309e412..06f3c42 100644 --- a/app/src/main/kotlin/com/sanmer/geomag/ui/utils/LazyListState.kt +++ b/app/src/main/kotlin/com/sanmer/geomag/ui/utils/LazyListState.kt @@ -6,7 +6,8 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.mutableFloatStateOf +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberUpdatedState import androidx.compose.runtime.setValue @@ -14,8 +15,8 @@ import com.sanmer.geomag.ui.component.ScrollbarState @Composable fun LazyListState.isScrollingUp(): Boolean { - var previousIndex by remember(this) { mutableStateOf(firstVisibleItemIndex) } - var previousScrollOffset by remember(this) { mutableStateOf(firstVisibleItemScrollOffset) } + var previousIndex by remember(this) { mutableIntStateOf(firstVisibleItemIndex) } + var previousScrollOffset by remember(this) { mutableIntStateOf(firstVisibleItemScrollOffset) } return remember(this) { derivedStateOf { if (previousIndex != firstVisibleItemIndex) { @@ -70,7 +71,7 @@ private inline fun rememberFastScroller( itemsAvailable: Int, crossinline scroll: suspend (index: Int) -> Unit, ): (Float) -> Unit { - var percentage by remember { mutableStateOf(Float.NaN) } + var percentage by remember { mutableFloatStateOf(Float.NaN) } val itemCount by rememberUpdatedState(itemsAvailable) LaunchedEffect(percentage) {