Le composable Slider
permet aux utilisateurs de faire des sélections à partir d'une plage de valeurs. Vous pouvez utiliser un curseur pour permettre à l'utilisateur d'effectuer les opérations suivantes:
- Réglez les paramètres qui utilisent une plage de valeurs, comme le volume et la luminosité.
- Filtrez les données dans un graphique, comme lorsque vous définissez une gamme de prix.
- Entrées utilisateur, comme la définition d'une note dans un avis
Le curseur contient une piste, un curseur, un libellé de valeur et des coches:
- Tracé: il s'agit de la barre horizontale qui représente la plage de valeurs que peut prendre le curseur.
- Pouce: le curseur est un élément de commande déplaçable sur le curseur qui permet à l'utilisateur de sélectionner une valeur spécifique dans la plage définie par la piste.
- Coches: les coches sont des repères ou des indicateurs visuels facultatifs qui apparaissent le long du parcours du curseur.
Implémentation de base
Consultez la documentation de référence sur Slider
pour obtenir une définition complète de l'API. Voici quelques-uns des paramètres clés du composable Slider
:
value
: valeur actuelle du curseur.onValueChange
: un lambda appelé chaque fois que la valeur est modifiée.enabled
: valeur booléenne indiquant si l'utilisateur peut interagir avec le curseur.
L'exemple suivant illustre un curseur simple. Cela permet à l'utilisateur de sélectionner une valeur comprise entre 0.0
et 1.0
. Comme l'utilisateur peut sélectionner n'importe quelle valeur de cette plage, le curseur est continu.
@Preview @Composable fun SliderMinimalExample() { var sliderPosition by remember { mutableFloatStateOf(0f) } Column { Slider( value = sliderPosition, onValueChange = { sliderPosition = it } ) Text(text = sliderPosition.toString()) } }
Cette implémentation est la suivante :
Implémentation avancée
Lorsque vous implémentez un curseur plus complexe, vous pouvez également utiliser les paramètres suivants.
colors
: instance deSliderColors
qui vous permet de contrôler les couleurs du curseur.valueRange
: plage de valeurs pouvant être appliquée au curseur.steps
: nombre d'encoches sur le curseur auxquelles le curseur s'aligne.
L'extrait de code suivant implémente un curseur comportant trois étapes, avec une plage comprise entre 0.0
et 50.0
. Comme le curseur se fixe à chaque étape, ce curseur est discret.
@Preview @Composable fun SliderAdvancedExample() { var sliderPosition by remember { mutableFloatStateOf(0f) } Column { Slider( value = sliderPosition, onValueChange = { sliderPosition = it }, colors = SliderDefaults.colors( thumbColor = MaterialTheme.colorScheme.secondary, activeTrackColor = MaterialTheme.colorScheme.secondary, inactiveTrackColor = MaterialTheme.colorScheme.secondaryContainer, ), steps = 3, valueRange = 0f..50f ) Text(text = sliderPosition.toString()) } }
L'implémentation se présente comme suit:
Curseur de plage
Vous pouvez également utiliser le composable RangeSlider
dédié. Cela permet à l'utilisateur de
sélectionner deux valeurs. Cela peut être utile lorsque l'utilisateur souhaite sélectionner un prix minimal et maximal, par exemple.
L'exemple suivant est un exemple relativement simple de curseur de plage continue.
@Preview @Composable fun RangeSliderExample() { var sliderPosition by remember { 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()) } }