Jetpack Compose - Sliders

This example demonstrates how to make Sliders  in android jet compose

Sliders allow users to make selections from a range of values.

  • Slider Sample,
  • Steps Slider Sample
  • Range Slider Sample,
  • Step Range Slider Sample


package io.material.compose.ui.design

import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.RangeSlider
import androidx.compose.material.Slider
import androidx.compose.material.SliderDefaults
import androidx.compose.material.Text
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue

@Composable
fun SliderSample() {
var sliderPosition by remember { mutableStateOf(0f) }
Text(text = sliderPosition.toString(), style = MaterialTheme.typography.labelLarge)
Slider(value = sliderPosition, onValueChange = { sliderPosition = it })
}

@Composable
fun StepsSliderSample() {
var sliderPosition by remember { mutableStateOf(0f) }
Text(text = sliderPosition.toString(), style = MaterialTheme.typography.labelLarge)
Slider(
value = sliderPosition,
onValueChange = { sliderPosition = it },
valueRange = 0f..100f,
onValueChangeFinished = {
// launch some business logic update with the state you hold
// viewModel.updateSelectedSliderValue(sliderPosition)
},
steps = 5,
colors = SliderDefaults.colors(
thumbColor = MaterialTheme.colorScheme.secondary,
activeTrackColor = MaterialTheme.colorScheme.secondary
)
)
}

@Composable
@OptIn(ExperimentalMaterialApi::class)
fun RangeSliderSample() {
var sliderPosition by remember { mutableStateOf(0f..100f) }
Text(text = sliderPosition.toString(), style = MaterialTheme.typography.labelLarge)
RangeSlider(
values = sliderPosition,
onValueChange = { sliderPosition = it },
valueRange = 0f..100f,
onValueChangeFinished = {
// launch some business logic update with the state you hold
// viewModel.updateSelectedSliderValue(sliderPosition)
},
)
}

@Composable
@OptIn(ExperimentalMaterialApi::class)
fun StepRangeSliderSample() {
var sliderPosition by remember { mutableStateOf(0f..100f) }
Text(text = sliderPosition.toString(), style = MaterialTheme.typography.labelLarge)
RangeSlider(
steps = 5,
values = sliderPosition,
onValueChange = { sliderPosition = it },
valueRange = 0f..100f,
onValueChangeFinished = {
// launch some business logic update with the state you hold
// viewModel.updateSelectedSliderValue(sliderPosition)
},
colors = SliderDefaults.colors(
thumbColor = MaterialTheme.colorScheme.secondary,
activeTrackColor = MaterialTheme.colorScheme.secondary
)
)
}



..

Comments