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
Post a Comment