You need to enable JavaScript to run this app. Jetpack Compose中拖动Slider时如何去除拖拽触发的波纹效果
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose中拖动Slider时如何去除拖拽触发的波纹效果

解决方案

你想要移除的浅紫色圆形是Material组件默认的拖拽/按压波纹效果,仅传入MutableInteractionSource无法关闭该效果,需要配合禁用组件的默认指示(Indication)配置,有两种常用实现方式:

方案1:作用域内禁用波纹(最简单)

通过CompositionLocalProvider临时覆盖当前Slider范围内的Indication配置为null,即可直接关闭默认波纹效果:

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

方案2:自定义滑块(灵活度更高,适配高版本Compose)

如果你使用的Compose Material版本 >= 1.3.0,可以通过thumb参数自定义滑块,完全自主控制滑块的样式和交互效果,不需要修改全局配置:

var sliderWeight by remember { mutableStateOf(0f) }
val interactionSource = remember { MutableInteractionSource() }
Text(text = sliderWeight.toString())
Slider(
    value = sliderWeight,
    onValueChange = { sliderWeight = it },
    interactionSource = interactionSource,
    // 自定义和默认样式一致的滑块,无波纹效果
    thumb = {
        Surface(
            shape = CircleShape,
            color = MaterialTheme.colors.primary,
            modifier = Modifier.size(20.dp)
        ) {}
    }
)

内容的提问来源于stack exchange,提问作者Maiko Trindade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 08:57:01