blob: 6212ca44f24e955a76d4759e68072b55563e28f4 [file] [log] [blame]
// 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 'package:flutter/material.dart';
import '../utils.dart';
import 'use_cases.dart';
class RangeSliderUseCase extends UseCase {
RangeSliderUseCase() : super(useCaseCategory: UseCaseCategory.additional);
@override
String get name => 'RangeSlider';
@override
String get route => '/range-slider';
@override
Widget build(BuildContext context) => const MainWidget();
}
class MainWidget extends StatefulWidget {
const MainWidget({super.key});
@override
State<MainWidget> createState() => MainWidgetState();
}
class MainWidgetState extends State<MainWidget> {
RangeValues _currentRangeValues = const RangeValues(20, 60);
String pageTitle = getUseCaseName(RangeSliderUseCase());
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Semantics(headingLevel: 1, child: Text('$pageTitle Demo')),
),
body: Center(
child: RangeSlider(
values: _currentRangeValues,
max: 100,
divisions: 5,
labels: RangeLabels(
_currentRangeValues.start.round().toString(),
_currentRangeValues.end.round().toString(),
),
onChanged: (RangeValues values) {
setState(() {
_currentRangeValues = values;
});
},
),
),
);
}
}