Material Material 3
El componente RangeSlider en Jetpack Compose es un control deslizante que permite a los usuarios seleccionar un rango de valores dentro de un intervalo definido. Es particularmente útil para casos donde se requiere especificar un rango, como en filtros de precios, selección de tiempo, o cualquier situación donde se necesite definir un mínimo y un máximo.
Implementación
Definición del componente
@Composable
fun RangeSlider (
value : ClosedFloatingPointRange < Float >,
onValueChange: ( ClosedFloatingPointRange < Float >) -> Unit ,
valueRange: ClosedFloatingPointRange < Float > = 0f .. 1f ,
steps: Int = 0 ,
enabled: Boolean = true ,
colors: SliderColors = SliderDefaults. colors ()
)
Los parámetros del componente en Material son los siguientes:
Atributo Descripción valueRangeDefine el rango de valores que el slider puede tomar. En este caso, va desde 0 hasta 100. valueUna tupla que representa los valores mínimos y máximos del rango seleccionado actualmente por el usuario. onValueChangeUn callback que se llama cuando el usuario desliza el control deslizante para cambiar los valores seleccionados. stepsDefine el número de pasos discretos entre los valores mínimos y máximos del rango. enabledDefine si el slider está habilitado o no. colorsLos colores del slider en diferentes estados. onValueChangeFinishedUn callback opcional que se llama cuando el usuario finaliza de cambiar los valores.
@Composable
fun RangeSlider (
value : ClosedFloatingPointRange < Float >,
onValueChange: ( ClosedFloatingPointRange < Float >) -> Unit ,
valueRange: ClosedFloatingPointRange < Float > = 0f .. 1f ,
steps: Int = 0 ,
enabled: Boolean = true ,
colors: SliderColors = SliderDefaults. colors ()
)
Atributo Descripción valueRangeDefine el rango de valores que el slider puede tomar. En este caso, va desde 0 hasta 100. valueUna tupla que representa los valores mínimos y máximos del rango seleccionado actualmente por el usuario. onValueChangeUn callback que se llama cuando el usuario desliza el control deslizante para cambiar los valores seleccionados. stepsDefine el número de pasos discretos entre los valores mínimos y máximos del rango. enabledDefine si el slider está habilitado o no. colorsLos colores del slider en diferentes estados. onValueChangeFinishedUn callback opcional que se llama cuando el usuario finaliza de cambiar los valores.
Ejemplos
@Composable
fun RangeSliderExample () {
var sliderPosition by remember { mutableStateOf ( 0f .. 100f ) }
Column (
modifier = Modifier. padding ( 16 .dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
Text (text = "Selected range: ${sliderPosition.start} - ${sliderPosition.endInclusive}" )
RangeSlider (
value = sliderPosition,
onValueChange = { sliderPosition = it },
valueRange = 0f .. 100f ,
steps = 10 ,
enabled = true ,
colors = SliderDefaults. colors ()
)
}
}
@Composable
fun RangeSliderExample () {
var sliderPosition by remember { mutableStateOf ( 0f .. 100f ) }
Column (
modifier = Modifier. padding ( 16 .dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
Text (text = "Selected range: ${sliderPosition.start} - ${sliderPosition.endInclusive}" )
RangeSlider (
value = sliderPosition,
onValueChange = { sliderPosition = it },
onValueChangeFinished = {
// Acción adicional después de que el usuario ha terminado de cambiar el valor
},
valueRange = 0f .. 100f ,
steps = 10 ,
enabled = true ,
colors = SliderDefaults. colors ()
)
}
}