material_duration_picker 0.0.1
material_duration_picker: ^0.0.1 copied to clipboard
A duration picker using the material design of the time picker.
example/lib/main.dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:material_duration_picker/material_duration_picker.dart';
void main() => runApp(const DurationPickerApp());
class DurationPickerApp extends StatelessWidget {
const DurationPickerApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: const [
DefaultDurationPickerMaterialLocalizations.delegate,
],
theme: ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepOrange),
),
home: const Home(),
);
}
}
class Home extends StatelessWidget {
const Home({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: SingleChildScrollView(
child: Column(
children: <Widget>[
Row(
children: <Widget>[
IconButton(
icon: const Icon(Icons.access_time),
onPressed: () {
showTimePicker(
context: context,
initialTime: TimeOfDay.now(),
);
},
),
IconButton(
icon: const Icon(Icons.timelapse),
onPressed: () {
showDurationPicker(
context: context,
initialDuration: Duration.zero,
);
},
),
IconButton(
icon: const Icon(Icons.date_range),
onPressed: () {
showDatePicker(
context: context,
firstDate: DateTime.now(),
lastDate: DateTime(DateTime.now().year + 1));
},
),
IconButton(
icon: const Icon(Icons.date_range),
onPressed: () {
showDateRangePicker(
context: context,
firstDate: DateTime.now(),
lastDate: DateTime(DateTime.now().year + 1));
},
),
],
),
Row(
children: [
TimePickerDialog(
initialTime: TimeOfDay.now(),
),
TimePickerDialog(
initialEntryMode: TimePickerEntryMode.input,
initialTime: TimeOfDay.now(),
),
],
),
const Row(
children: [
DurationPickerDialog(
durationPickerMode: DurationPickerMode.hm,
initialDuration: Duration(hours: 1, minutes: 30, seconds: 45),
),
DurationPickerDialog(
durationPickerMode: DurationPickerMode.hm,
initialEntryMode: DurationPickerEntryMode.input,
initialDuration: Duration(hours: 1, minutes: 30, seconds: 45),
),
],
),
const Row(
children: [
DurationPickerDialog(
durationPickerMode: DurationPickerMode.hms,
initialDuration: Duration(hours: 1, minutes: 30, seconds: 45),
),
DurationPickerDialog(
durationPickerMode: DurationPickerMode.hms,
initialEntryMode: DurationPickerEntryMode.input,
initialDuration: Duration(hours: 1, minutes: 30, seconds: 45),
),
],
),
const Row(
children: [
DurationPickerDialog(
durationPickerMode: DurationPickerMode.ms,
initialDuration: Duration(hours: 1, minutes: 30, seconds: 45),
),
DurationPickerDialog(
durationPickerMode: DurationPickerMode.ms,
initialEntryMode: DurationPickerEntryMode.input,
initialDuration: Duration(hours: 1, minutes: 30, seconds: 45),
),
],
),
CupertinoTimerPicker(
mode: CupertinoTimerPickerMode.hms,
onTimerDurationChanged: (Duration value) {
print(value);
},
),
],
),
),
);
}
}