// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'dart:ui'; import 'package:flutter/material.dart'; class SlidersPage extends StatefulWidget { const SlidersPage({super.key}); @override State<SlidersPage> createState() => _SlidersPageState(); } class _SlidersPageState extends State<SlidersPage> with TickerProviderStateMixin { late AnimationController _sliderController; late Animation<double> _sliderAnimation; double _sliderValue = 0.0; RangeValues _rangeSliderValues = const RangeValues(0.0, 1.0); @override void initState() { super.initState(); _sliderController = AnimationController( duration: const Duration(seconds: 1), vsync: this, )..repeat(); _sliderAnimation = Tween<double>(begin: 0, end: 1).animate(_sliderController) ..addListener(() { setState(() { _sliderValue = _sliderAnimation.value; _rangeSliderValues = RangeValues( clampDouble(_sliderAnimation.value, 0, 0.45), 1.0 - clampDouble(_sliderAnimation.value, 0, 0.45), ); }); }); } @override void dispose() { _sliderController.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Material( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Slider( value: _sliderValue, onChanged: (double value) { }, ), RangeSlider( values: _rangeSliderValues, onChanged: (RangeValues values) { }, ), ], ), ); } }