Jetpack Compose 更改滑块拇指尺寸

ysf*_*yln 14 android slider seekbar-thumb android-jetpack-compose android-jetpack-compose-material3

有没有办法改变滑块拇指大小?我认为现在我们只能操纵颜色

var sliderPosition by remember { mutableStateOf(0f) }
Text(text = sliderPosition.toString())
Slider(
    value = sliderPosition,
    onValueChange = { sliderPosition = it },
    valueRange = 0f..100f,
    onValueChangeFinished = {
        // launch some business logic update with the state you hold
        // viewModel.updateSelectedSliderValue(sliderPosition)
    },
    steps = 5,
    colors = SliderDefaults.colors(
        thumbColor = MaterialTheme.colors.secondary,
        activeTrackColor = MaterialTheme.colors.secondary
    )
)
Run Code Online (Sandbox Code Playgroud)

Jetpack-Compose 滑块

Gab*_*tti 9

使用M3, androidx.compose.material3.Slider您可以使用该thumb属性来自定义尺寸。

就像是:

var sliderPosition by remember { mutableStateOf(0f) }
Column {
    Text(text = sliderPosition.toString())
    Slider(
        modifier = Modifier.semantics { contentDescription = "Localized Description" },
        value = sliderPosition,
        onValueChange = { sliderPosition = it },
        valueRange = 0f..5f,
        steps = 4,
        interactionSource = interactionSource,
        onValueChangeFinished = {
            // launch some business logic update with the state you hold
        },
        thumb = {
            SliderDefaults.Thumb( //androidx.compose.material3.SliderDefaults
                interactionSource = interactionSource,
                thumbSize = DpSize(40.dp,40.dp)
            )
        },

    )
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

注意:至少需要material3版本1.0.0-beta03

  • 这里的interactionSource是什么? (3认同)

Phi*_*hov 6

不可以,此尺寸无法修改。您唯一能做的就是将整个Slider.kt文件复制到您的项目中并进行修改。

最好给新视图起一个不同的名称,以避免将来产生误解。

您应该更改ThumbRadius常量,或者如果您的应用程序需要不同的大小,请将其设为变量。