fix: use absolute delta by scale in Switch

This commit is contained in:
2023-11-12 23:59:49 +08:00
parent f90e2c8459
commit 90130a7bfb

View File

@@ -153,9 +153,10 @@ fun Switch(
orientation = Orientation.Horizontal, orientation = Orientation.Horizontal,
interactionSource = interactionSource, interactionSource = interactionSource,
state = rememberDraggableState { delta -> state = rememberDraggableState { delta ->
absOffsetX += delta val absDelta = delta * animatedScale
absOffsetX += absDelta
when { when {
absOffsetX in 0f..maxOffset -> offsetX += delta absOffsetX in 0f..maxOffset -> offsetX += absDelta
absOffsetX < 0f -> offsetX = 0f absOffsetX < 0f -> offsetX = 0f
absOffsetX > maxOffset -> offsetX = maxOffset absOffsetX > maxOffset -> offsetX = maxOffset
} }