最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

kotlin - How to remove the extra padding around the thumb of a Slider? - Stack Overflow

matteradmin7PV0评论

I recently updated material libraries and as I see now there is extra horizontal space around thumb, but could not find any info about how to remove it. Has anyone found a way to solve this issue?

CompositionLocalProvider(LocalRippleConfiguration provides null) {
            Slider(
                value = sliderValue,
                onValueChange = { newValue ->
                    sliderValue = newValue
                    onValueChange(newValue)
                },
                valueRange = valueRange,
                steps = steps,
                thumb = {
                    Image(
                        painter = painterResource(R.drawable.ic_thumb_inverted),
                        contentDescription = null,
                        modifier = Modifier
                            .size(48.dp)
                            .testTag("thumb"),
                    )
                },
                track = { sliderState ->
                    SliderDefaults.Track(
                        drawStopIndicator = {},
                        modifier = Modifier
                            .scale(scaleX = 1f, scaleY = 0.8f),
                        sliderState = sliderState,
                        colors = SliderDefaults.colors(
                            activeTrackColor = neonBlue,
                            activeTickColor = Color.Transparent,
                            inactiveTickColor = Color.Transparent,
                            inactiveTrackColor = linkWater2Blue,
                            thumbColor = Color.Transparent,
                        ),
                    )
                },
                modifier = Modifier
                    .constrainAs(slider) {
                        start.linkTo(parent.start)
                        end.linkTo(parent.end)
                        top.linkTo(parent.top)
                        width = Dimension.fillToConstraints
                    }
                    .testTag("slider"),
            )
        }

I recently updated material libraries and as I see now there is extra horizontal space around thumb, but could not find any info about how to remove it. Has anyone found a way to solve this issue?

CompositionLocalProvider(LocalRippleConfiguration provides null) {
            Slider(
                value = sliderValue,
                onValueChange = { newValue ->
                    sliderValue = newValue
                    onValueChange(newValue)
                },
                valueRange = valueRange,
                steps = steps,
                thumb = {
                    Image(
                        painter = painterResource(R.drawable.ic_thumb_inverted),
                        contentDescription = null,
                        modifier = Modifier
                            .size(48.dp)
                            .testTag("thumb"),
                    )
                },
                track = { sliderState ->
                    SliderDefaults.Track(
                        drawStopIndicator = {},
                        modifier = Modifier
                            .scale(scaleX = 1f, scaleY = 0.8f),
                        sliderState = sliderState,
                        colors = SliderDefaults.colors(
                            activeTrackColor = neonBlue,
                            activeTickColor = Color.Transparent,
                            inactiveTickColor = Color.Transparent,
                            inactiveTrackColor = linkWater2Blue,
                            thumbColor = Color.Transparent,
                        ),
                    )
                },
                modifier = Modifier
                    .constrainAs(slider) {
                        start.linkTo(parent.start)
                        end.linkTo(parent.end)
                        top.linkTo(parent.top)
                        width = Dimension.fillToConstraints
                    }
                    .testTag("slider"),
            )
        }

Share Improve this question edited Dec 3, 2024 at 10:05 BenjyTec 11.2k4 gold badges24 silver badges50 bronze badges asked Nov 16, 2024 at 15:24 Javokhir SherbaevJavokhir Sherbaev 1512 silver badges7 bronze badges 0
Add a comment  | 

1 Answer 1

Reset to default 3

The Material3 Design Guidelines specify that there should be this gap of width 6.dp on both sides of the handle. However, you can modify this using the thumbTrackGapSize parameter of SliderDefaults.Track Composable:

Slider(
    //...
    track = { sliderState ->
        SliderDefaults.Track(
            sliderState = sliderState,
            thumbTrackGapSize = 0.dp,
            //...
        )
    }
)

Output:

Post a comment

comment list (0)

  1. No comments so far