Mit der Slider zusammensetzbaren Funktion können Nutzer eine Auswahl aus einem Wertebereich von
Werten treffen. Sie können einen Schieberegler verwenden, damit Nutzer Folgendes tun können:
- Einstellungen anpassen, die einen Wertebereich verwenden, z. B. Lautstärke und Helligkeit.
- Daten in einem Diagramm filtern, z. B. beim Festlegen einer Preisspanne.
- Nutzereingaben, z. B. eine Bewertung in einer Rezension festlegen.
Der Schieberegler enthält eine Spur, einen Schieber, ein Wertlabel und Markierungen:
- Spur: Die Spur ist der horizontale Balken, der den Wertebereich darstellt, den der Schieberegler annehmen kann.
- Schieber: Der Schieber ist ein verschiebbares Steuerelement auf dem Schieberegler, mit dem der Nutzer einen bestimmten Wert innerhalb des durch die Spur definierten Bereichs auswählen kann.
- Markierungen: Markierungen sind optionale visuelle Marker oder Indikatoren, die entlang der Spur des Schiebereglers angezeigt werden.
Einfache Implementierung
Eine vollständige API-Definition finden Sie in der Slider Referenz. Einige der wichtigsten Parameter für die zusammensetzbare Funktion Slider sind:
value: Der aktuelle Wert des Schiebereglers.onValueChange: Ein Lambda, das jedes Mal aufgerufen wird, wenn der Wert geändert wird.enabled: Ein boolescher Wert, der angibt, ob der Nutzer mit dem Schieberegler interagieren kann.
Das folgende Beispiel zeigt einen einfachen Schieberegler. Damit kann der Nutzer einen Wert zwischen 0.0 und 1.0 auswählen. Da der Nutzer einen beliebigen Wert in diesem Bereich auswählen kann, ist der Schieberegler stufenlos.
@Preview @Composable fun SliderMinimalExample() { var sliderPosition by remember { mutableFloatStateOf(0f) } Column { Slider( value = sliderPosition, onValueChange = { sliderPosition = it } ) Text(text = sliderPosition.toString()) } }
Diese Implementierung sieht so aus:
Erweiterte Implementierung
Bei der Implementierung eines komplexeren Schiebereglers können Sie zusätzlich die folgenden Parameter verwenden.
colors: Eine Instanz vonSliderColors, mit der Sie die Farben des Schiebereglers steuern können.valueRange: Der Wertebereich, den der Schieberegler annehmen kann.steps: Die Anzahl der Stufen auf dem Schieberegler, an denen der Schieber einrastet.
Das folgende Snippet implementiert einen Schieberegler mit drei Stufen und einem Bereich
von 0.0 bis 50.0. Da der Schieber an jeder Stufe einrastet, ist dieser Schieberegler diskret.
@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()) } }
Die Implementierung sieht so aus:
Bereichsschieberegler
Sie können auch die spezielle zusammensetzbare Funktion RangeSlider verwenden. Damit kann der Nutzer zwei Werte auswählen. Das kann in Fällen nützlich sein, in denen der Nutzer beispielsweise einen Mindest- und Höchstpreis auswählen möchte.
Das folgende Beispiel ist ein relativ einfaches Beispiel für einen stufenlosen Bereichsschieberegler.
@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()) } }