Как увеличить высоту ползунка в Material Design 3

      @Composable
fun SliderWithCustomTrackAndThumb() {
    var sliderPosition by remember { mutableStateOf(0f) }
    val interactionSource = MutableInteractionSource()
    val colors = SliderDefaults.colors(thumbColor = Color.Red, activeTrackColor = Color.Red)
    Column {
        Text(text = sliderPosition.toString())
        Slider(
            modifier = Modifier.semantics { contentDescription = "Localized Description" },
            value = sliderPosition,
            onValueChange = { sliderPosition = it },
            valueRange = 0f..100f,
            onValueChangeFinished = {
                // launch some business logic update with the state you hold
                // viewModel.updateSelectedSliderValue(sliderPosition)
            },
            interactionSource = interactionSource,
            thumb = {
                SliderDefaults.Thumb(
                    interactionSource = interactionSource,
                    colors = colors
                )
            },
            track = { sliderPositions ->
                SliderDefaults.Track(
                    colors = colors,
                    sliderPositions = sliderPositions
                )
            }
        )
    }
}

Вышеупомянутая компонуемая функция создает образец ползунка с пользовательским размером большого пальца. Я хочу увеличить размер трека. Как мне это сделать?

1 ответ

Вы можете увеличить или уменьшить размер дорожки и ползунка, используя модификаторы масштаба. Вот как я это делаю:

          @Composable
    private fun Slider() {
        val interactionSource = remember { MutableInteractionSource() }
        Slider(
            modifier = Modifier
                .fillMaxWidth()
                .padding(horizontal = 8.dp),
            value = 0.5f,
            interactionSource = interactionSource,
            onValueChange = { value: Float -> },
            valueRange = 0f..1f,
            track = { sliderPositions ->
                SliderDefaults.Track(
                    modifier = Modifier.scale(scaleX = 1f, scaleY = 0.5f),
                    sliderPositions = sliderPositions
                )
            },
            thumb = {
                SliderDefaults.Thumb(
                    modifier = Modifier.scale(scaleX = 0.5f, scaleY = 0.5f),
                    interactionSource = interactionSource,
                )
            }
        )
    }

Скриншот

Другие вопросы по тегам