在 Jetpack Compose 中移动滑块时如何消除拖动效果

问题描述

我想从滑块刻度中删除拖动效果并移动它。 我不想在下图中出现这个浅紫色的圆圈。

enter image description here

我知道 interactionSource 组件中的 Slider 参数,但我没有正确处理它以删除/禁用拖动效果

这是我的实际代码

var sliderWeight by remember { mutableStateOf(0f) }
Text(text = sliderWeight.toString())
Slider(value = sliderWeight,onValueChange = { sliderWeight = it },interactionSource = remember { MutableInteractionSource() })

解决方法

没有用于定义光环颜色或光环半径的参数,但您可以提供自定义 LocalRippleTheme 来覆盖默认行为。

类似于:

CompositionLocalProvider(LocalRippleTheme provides NoRippleTheme) {
    Slider(
        value = sliderWeight,onValueChange = { sliderWeight = it },)
}

private object NoRippleTheme : RippleTheme {
    @Composable
    override fun defaultColor() = Color.Unspecified

    @Composable
    override fun rippleAlpha(): RippleAlpha = RippleAlpha(0.0f,0.0f,0.0f)
}

enter image description here