如何让 Slider onValueChange 仅触发 x 次?

问题描述 投票:0回答:1

我做了一个滑块,有 12 个点。我希望

onValueChange
仅在 0.0、1.0 等直至 11.0 时被解雇。

这是我的代码:

var sliderPosition by remember { mutableFloatStateOf(0f) }
Slider(
    value = sliderPosition,
    onValueChange = { it ->
        sliderPosition = it
        Log.d("check--", "onValueChange: $it")
    },
    valueRange = 0f..11f,
    steps = 10
)

当从 6 号点滑动到 7 号点时,我看到这个:

onValueChange: 6.0

这是我所期望的,但是当我从7号点滑动到8号点时,我看到了这个:

onValueChange: 7.0000005
onValueChange: 7.0000005
onValueChange: 7.0000005

我想我以前没有这个问题,我不确定我改变了什么,也许是

sliderPosition
的类型...

有人可以帮助我吗?

android-jetpack-compose android-slider
1个回答
0
投票

您可以使用以下代码

var sliderPosition by remember { mutableFloatStateOf(0f) }
    Slider(
                value = sliderPosition,
                onValueChange = {
                    sliderPosition = round(it)
                    Log.d("check--", "onValueChange: $it")
                },
                valueRange = 0f..11f,
                steps = 10
            )
© www.soinside.com 2019 - 2024. All rights reserved.