Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O elemento combinável Slider permite que os usuários façam seleções em um intervalo de valores. Você pode usar um controle deslizante para permitir que o usuário faça o seguinte:
Ajuste as configurações que usam um intervalo de valores, como volume e brilho.
Filtrar dados em um gráfico, como ao definir um intervalo de preços.
Entrada do usuário, como definir uma classificação em uma avaliação.
O controle deslizante contém uma faixa, um controle, um rótulo de valor e marcas de tique:
Faixa: é a barra horizontal que representa o intervalo de valores que o controle deslizante pode assumir.
Alça: é um elemento de controle arrastável no controle deslizante que permite ao usuário selecionar um valor específico dentro do intervalo definido pela faixa.
Marcas de tique: são marcadores ou indicadores visuais opcionais que aparecem ao longo da faixa do controle deslizante.
Figura 1. Uma implementação de um controle deslizante.
Implementação básica
Consulte a referência Slider para ver uma definição completa da API. Alguns dos principais parâmetros do elemento combinável Slider são:
value: o valor atual do controle deslizante.
onValueChange: uma lambda chamada sempre que o valor é
alterado.
enabled: um valor booleano que indica se o usuário pode interagir com
o controle deslizante.
O exemplo a seguir é um controle deslizante simples. Isso permite que o usuário
selecione um valor de 0.0 a 1.0. Como o usuário pode selecionar qualquer valor nesse intervalo, o controle deslizante é contínuo.
Figura 2. Uma implementação básica de um controle deslizante.
Implementação avançada
Ao implementar um controle deslizante mais complexo, você também pode usar os seguintes parâmetros.
colors: uma instância de SliderColors que permite controlar as cores do controle deslizante.
valueRange: o intervalo de valores que o controle deslizante pode assumir.
steps: o número de entalhes no controle deslizante em que o polegar se encaixa.
O snippet a seguir implementa um controle deslizante com três etapas e um intervalo de 0.0 a 50.0. Como o controle deslizante se ajusta a cada etapa, ele é discreto.
Figura 3. Um controle deslizante com etapas e um intervalo de valores definido.
Controle deslizante do intervalo
Você também pode usar o elemento combinável RangeSlider dedicado. Isso permite que o usuário
selecione dois valores. Isso pode ser útil em casos como quando o usuário quer selecionar um preço mínimo e máximo.
O exemplo a seguir é relativamente simples de um controle deslizante de intervalo contínuo.
@Preview@ComposablefunRangeSliderExample(){varsliderPositionbyremember{mutableStateOf(0f..100f)}Column{RangeSlider(value=sliderPosition,steps=5,onValueChange={range->sliderPosition=range},valueRange=0f..100f,onValueChangeFinished={// launch some business logic update with the state you hold// viewModel.updateSelectedSliderValue(sliderPosition)},)Text(text=sliderPosition.toString())}}
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-08-25 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-25 UTC."],[],[],null,["# Slider\n\nThe [`Slider`](/reference/kotlin/androidx/compose/material3/package-summary#Slider(androidx.compose.material3.SliderState,androidx.compose.ui.Modifier,kotlin.Boolean,androidx.compose.material3.SliderColors,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1,kotlin.Function1)) composable allows users to make selections from a range of\nvalues. You might use a slider to let the user do the following:\n\n- Adjust settings that use a range of values, such as volume, and brightness.\n- Filter data in a graph, as when setting a price range.\n- User input, like setting a rating in a review.\n\nThe slider contains a track, thumb, value label, and tick marks:\n\n- **Track**: The track is the horizontal bar that represents the range of values the slider can take.\n- **Thumb**: The thumb is a draggable control element on the slider that allows the user to select a specific value within the range defined by the track.\n- **Tick marks**: Tick marks are optional visual markers or indicators that appear along the track of the slider.\n\n**Figure 1.** An implementation of a slider.\n\nBasic implementation\n--------------------\n\nSee the [`Slider`](/reference/kotlin/androidx/compose/material3/package-summary#Slider(androidx.compose.material3.SliderState,androidx.compose.ui.Modifier,kotlin.Boolean,androidx.compose.material3.SliderColors,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1,kotlin.Function1)) reference for a full API definition. Some of the key\nparameters for the `Slider` composable are the following:\n\n- **`value`**: The current value of the slider.\n- **`onValueChange`**: A lambda that gets called every time the value is changed.\n- **`enabled`**: A boolean value that indicates if the user can interact with the slider.\n\nThe following example is a straightforward slider. That allows the user to\nselect a value from `0.0` to `1.0`. Because the user can select any value in\nthat range, the slider is *continuous*.\n\n\n```kotlin\n@Preview\n@Composable\nfun SliderMinimalExample() {\n var sliderPosition by remember { mutableFloatStateOf(0f) }\n Column {\n Slider(\n value = sliderPosition,\n onValueChange = { sliderPosition = it }\n )\n Text(text = sliderPosition.toString())\n }\n}https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/compose/snippets/src/main/java/com/example/compose/snippets/components/Slider.kt#L59-L70\n```\n\n\u003cbr /\u003e\n\nThis implementation appears as follows:\n**Figure 2.** A basic implementation of a slider.\n\nAdvanced implementation\n-----------------------\n\nWhen implementing a more complex slider, you can additionally make use of the\nfollowing parameters.\n\n- **`colors`** : An instance of `SliderColors` that lets you control the colors of the slider.\n- **`valueRange`**: The range of values that the slider can take.\n- **`steps`**: The number of notches on the slider to which the thumb snaps.\n\nThe following snippet implements a slider that has three steps, with a range\nfrom `0.0` to `50.0`. Because the thumb snaps to each step, this slider is\n*discrete*.\n\n\n```kotlin\n@Preview\n@Composable\nfun SliderAdvancedExample() {\n var sliderPosition by remember { mutableFloatStateOf(0f) }\n Column {\n Slider(\n value = sliderPosition,\n onValueChange = { sliderPosition = it },\n colors = SliderDefaults.colors(\n thumbColor = MaterialTheme.colorScheme.secondary,\n activeTrackColor = MaterialTheme.colorScheme.secondary,\n inactiveTrackColor = MaterialTheme.colorScheme.secondaryContainer,\n ),\n steps = 3,\n valueRange = 0f..50f\n )\n Text(text = sliderPosition.toString())\n }\n}https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/compose/snippets/src/main/java/com/example/compose/snippets/components/Slider.kt#L74-L92\n```\n\n\u003cbr /\u003e\n\nThe implementation appears as follows:\n**Figure 3.** A slider with steps and a set value range. **Note:** The very beginning and end of a slider count as \"steps\". In the preceding example where the range is `0f..50f` and the number of `steps` is `3`, each interval along the range is `12.5` because the beginning and end of the slider are also intervals the user can select.\n| **Note:** You can also pass `Slider` a `thumb` and `track` composable to more thoroughly customize the appearance of the component.\n\nRange slider\n------------\n\nYou can also use the dedicated `RangeSlider` composable. This allows the user to\nselect two values. This can be useful in cases such as when the user wishes to\nselect a minimum and maximum price.\n\nThe following example is a relatively straightforward example of a continuous\nrange slider.\n\n\n```kotlin\n@Preview\n@Composable\nfun RangeSliderExample() {\n var sliderPosition by remember { mutableStateOf(0f..100f) }\n Column {\n RangeSlider(\n value = sliderPosition,\n steps = 5,\n onValueChange = { range -\u003e sliderPosition = range },\n valueRange = 0f..100f,\n onValueChangeFinished = {\n // launch some business logic update with the state you hold\n // viewModel.updateSelectedSliderValue(sliderPosition)\n },\n )\n Text(text = sliderPosition.toString())\n }\n}https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/compose/snippets/src/main/java/com/example/compose/snippets/components/Slider.kt#L96-L113\n```\n\n\u003cbr /\u003e\n\n**Figure 4.** An implementation of a range slider.\n\nAdditional resources\n--------------------\n\n- [Material UI docs](https://m3.material.io/components/sliders/overview)"]]