build method
Build a widget.
Implementation
@override
Widget build(BuildContext context) => Cancel(
child: SimpleScaffold(
actions: [
SaveButton(
onPressed: () {
Navigator.pop(context);
widget.onChanged(
Duration(
days: days,
hours: hours,
minutes: minutes,
seconds: seconds,
milliseconds: milliseconds,
),
);
},
),
],
title: widget.title,
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Slider(
value: days.toDouble(),
onChanged: (value) => setState(() => days = value.round()),
label: 'Days',
autofocus: true,
max: 364,
divisions: 364,
semanticFormatterCallback: (value) => formatValue(value, 'day'),
),
Slider(
value: hours.toDouble(),
onChanged: (value) => setState(() => hours = value.round()),
label: 'Hours',
max: 23,
divisions: 23,
semanticFormatterCallback: (value) => formatValue(value, 'hour'),
),
Slider(
value: minutes.toDouble(),
onChanged: (value) => setState(() => minutes = value.round()),
label: 'Minutes',
max: 59,
divisions: 59,
semanticFormatterCallback: (value) => formatValue(value, 'minute'),
),
Slider(
value: seconds.toDouble(),
onChanged: (value) => setState(() => seconds = value.round()),
label: 'Seconds',
max: 59,
divisions: 59,
semanticFormatterCallback: (value) => formatValue(value, 'second'),
),
Slider(
value: milliseconds.toDouble(),
onChanged: (value) => setState(() => milliseconds = value.round()),
label: 'Milliseconds',
max: 999,
divisions: 999,
semanticFormatterCallback: (value) =>
formatValue(value, 'millisecond'),
),
],
),
),
);