Un control deslizante es un widget para seleccionar un valor de un rango determinado en la aplicación. Podemos deslizarnos por el valor y seleccionar el valor deseado de él. No necesitamos instalar ninguna dependencia para implementar un control deslizante.
Un control deslizante de rango es muy similar a un widget de control deslizante, pero en lugar de seleccionar un solo valor, podemos seleccionar un rango continuo de valores de un rango determinado.
Implementación:
Control deslizante:
El control deslizante se puede implementar simplemente usando el control deslizante y proporcionando los valores de rango. Este widget toma dos parámetros requeridos:
- valor: aquí debemos pasar el valor predeterminado cada vez que se inicia la aplicación y debe ser del tipo doble.
- onChanged: esta función se activa cada vez que se cambia el valor del control deslizante y obtenemos un valor doble que podemos usar para continuar con el proceso.
Esta es la sintaxis de Slider.
Dart
Slider( value: value, onChanged: (value) { }, ),
Control deslizante de rango:
El widget RangeSlider se implementa mediante el uso del widget llamado RangeSlider. Este widget toma dos parámetros requeridos:
- valores: Aquí necesitamos pasar el tipo de datos RangeValues que tiene un inicio y un final.
- onChanged: esta función se activa cada vez que se cambian los valores del rango y obtenemos un valor de RangeValue.
Dart
RangeSlider( values: RangeValues(start, end), onChanged: (value) {}, )
Ejemplo 1: widget de control deslizante
Aquí hemos creado un control deslizante selector de edad. El usuario puede deslizar el control deslizante y seleccionar un valor.
Dart
import 'package:flutter/material.dart'; class SliderTutorial extends StatefulWidget { const SliderTutorial({Key? key, required this.title}) : super(key: key); final String title; @override _SliderTutorialState createState() => _SliderTutorialState(); } class _SliderTutorialState extends State<SliderTutorial> { int age = 10; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Slider( label: "Select Age", value: age.toDouble(), onChanged: (value) { setState(() { age = value.toInt(); }); }, min: 5, max: 100, ), Text( "Your Age: " + age.toString(), style: const TextStyle( fontSize: 32.0, ), ), ], ), ); } }
Producción:
Ejemplo 2: Widget RangeSlider
En este ejemplo, implementaremos el widget RangeSlider. Necesitaremos crear dos valores dobles, inicio y fin respectivamente para implementar el RangeSlider. Aquí está el código.
Dart
import 'package:flutter/material.dart'; class RangeSliderTutorial extends StatefulWidget { const RangeSliderTutorial({Key? key, required this.title}) : super(key: key); final String title; @override _RangeSliderTutorialState createState() => _RangeSliderTutorialState(); } class _RangeSliderTutorialState extends State<RangeSliderTutorial> { double start = 30.0; double end = 50.0; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ RangeSlider( values: RangeValues(start, end), labels: RangeLabels(start.toString(), end.toString()), onChanged: (value) { setState(() { start = value.start; end = value.end; }); }, min: 10.0, max: 80.0, ), Text( "Start: " + start.toStringAsFixed(2) + "\nEnd: " + end.toStringAsFixed(2), style: const TextStyle( fontSize: 32.0, ), ), ], ), ); } }
Producción:
Publicación traducida automáticamente
Artículo escrito por manavsarkar07 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA