From 6dcf7475fd7da877983bbd08684ae150b165c13e Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Thu, 18 Jan 2024 23:09:09 +0800 Subject: [PATCH] fix: value offset X not sync to track width changed in Slider --- .../kotlin/com/highcapable/flexiui/component/Slider.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Slider.kt b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Slider.kt index f971b3e..37dfe97 100644 --- a/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Slider.kt +++ b/flexiui-core/src/commonMain/kotlin/com/highcapable/flexiui/component/Slider.kt @@ -198,7 +198,9 @@ private fun SliderLayout( val offsetXFromValue = (value.coerceIn(min, max) - min) / (max - min) * maxOffsetX val steppedOffsetXFromValue = offsetXFromValue.withSteps() var absOffsetX by remember { mutableStateOf(0f) } - var offsetX by remember { mutableStateOf(steppedOffsetXFromValue) } + var offsetX by remember { mutableStateOf(0f) } + // Needs update every time when [value] or [trackWidth] changed. + offsetX = steppedOffsetXFromValue val animatedOffsetX by animateFloatAsState(offsetX) val adoptedOffsetX = if (tapped && !dragging) animatedOffsetX else offsetX