daymoonpicker
Just a day moon time picker
import 'package:daymoonpicker/lib/constants.dart';
import 'package:daymoonpicker/lib/daynight_timepicker.dart';
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Time picker',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const Home(),
);
}
}
class Home extends StatefulWidget {
const Home({Key? key}) : super(key: key);
@override
// ignore: library_private_types_in_public_api
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
TimeOfDay _time = TimeOfDay.now().replacing(hour: 11, minute: 30);
bool iosStyle = true;
void onTimeChanged(TimeOfDay newTime) {
setState(() {
_time = newTime;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Center(
child: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
"Popup Picker Style",
style: Theme.of(context).textTheme.headline6,
),
Text(
_time.format(context),
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.headline1,
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Theme.of(context).colorScheme.secondary,
),
onPressed: () {
Navigator.of(context).push(
showPicker(
context: context,
value: _time,
onChange: onTimeChanged,
minuteInterval: MinuteInterval.FIVE,
// Optional onChange to receive value as DateTime
onChangeDateTime: (DateTime dateTime) {
// print(dateTime);
debugPrint("[debug datetime]: $dateTime");
},
),
);
},
child: const Text(
"Open time picker",
style: TextStyle(color: Colors.white),
),
),
const SizedBox(height: 10),
const Divider(),
const SizedBox(height: 10),
Text(
"Inline Picker Style",
style: Theme.of(context).textTheme.headline6,
),
// Render inline widget
createInlinePicker(
elevation: 1,
value: _time,
onChange: onTimeChanged,
minuteInterval: MinuteInterval.FIVE,
iosStylePicker: iosStyle,
minHour: 9,
maxHour: 21,
is24HrFormat: false,
),
Text(
"IOS Style",
style: Theme.of(context).textTheme.bodyText1,
),
Switch(
value: iosStyle,
onChanged: (newVal) {
setState(() {
iosStyle = newVal;
});
},
)
],
),
),
),
),
);
}
}
Libraries
- lib/ampm
- lib/common/display_value
- lib/common/display_wheel
- lib/common/filter_wrapper
- lib/common/wrapper_container
- lib/common/wrapper_dialog
- lib/constants
- lib/day_night_timepicker_android
- lib/day_night_timepicker_ios
- lib/daynight_timepicker
- lib/state/state_container
- lib/state/time
- lib/sun_moon
- lib/utils