aves/lib/widgets/common/basic/list_tiles/slider.dart
Thibault Deckers 09cf4fef3e thumb zoom prep
2023-03-08 14:24:56 +01:00

59 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
class SliderListTile extends StatelessWidget {
final String title;
final double value;
final ValueChanged<double>? onChanged;
final double min;
final double max;
final int? divisions;
const SliderListTile({
super.key,
required this.title,
required this.value,
required this.onChanged,
this.min = 0.0,
this.max = 1.0,
this.divisions,
});
@override
Widget build(BuildContext context) {
return SliderTheme(
data: const SliderThemeData(
overlayShape: RoundSliderOverlayShape(
// align `Slider`s on `Switch`es by matching their overlay/reaction radius
// `kRadialReactionRadius` is used when `SwitchThemeData.splashRadius` is undefined
overlayRadius: kRadialReactionRadius,
),
),
child: DefaultTextStyle(
style: Theme.of(context).textTheme.titleMedium!,
child: Padding(
padding: const EdgeInsets.only(top: 16, bottom: 8),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsetsDirectional.only(start: 16),
child: Text(title),
),
Padding(
// match `SwitchListTile.contentPadding`
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Slider(
value: value,
onChanged: onChanged,
min: min,
max: max,
divisions: divisions,
),
),
],
),
),
),
);
}
}