show static method
Implementation
static Future<TimeOfDay?> show({
required BuildContext context,
TimeOfDay? initialTime,
bool use24HourFormat = false,
String title = 'Select Time',
String confirmLabel = 'Confirm',
String cancelLabel = 'Cancel',
}) {
final time = initialTime ?? TimeOfDay.now();
return showGeneralDialog<TimeOfDay>(
context: context,
barrierDismissible: true,
barrierLabel: 'Dismiss',
barrierColor: const Color(0x88000000),
transitionDuration: const Duration(milliseconds: 400),
pageBuilder: (ctx, animation, secondaryAnimation) {
return AnimatedBuilder(
animation: animation,
builder: (context, child) {
final t = KinMotion.fluidEnter.transform(animation.value.clamp(0.0, 1.0));
final slide = 0.12 * (1.0 - t);
final scale = 0.92 + 0.08 * t;
return Transform.translate(
offset: Offset(0, slide * MediaQuery.sizeOf(context).height),
child: Transform.scale(
scale: scale,
alignment: Alignment.bottomCenter,
child: Opacity(
opacity: animation.value.clamp(0.0, 1.0),
child: child,
),
),
);
},
child: SafeArea(
child: Align(
alignment: Alignment.bottomCenter,
child: Padding(
padding: EdgeInsets.only(
left: KinSpacing.sm + MediaQuery.paddingOf(ctx).left,
right: KinSpacing.sm + MediaQuery.paddingOf(ctx).right,
bottom: KinSpacing.xs,
),
child: KinTimePicker(
initialTime: time,
use24HourFormat: use24HourFormat,
title: title,
confirmLabel: confirmLabel,
cancelLabel: cancelLabel,
onConfirm: (t) => Navigator.pop(ctx, t),
onCancel: () => Navigator.pop(ctx),
),
),
),
),
);
},
);
}