showCustomTimePicker static method
Future<TimeOfDay?>
showCustomTimePicker(
{ - TimeOfDay? initialTime,
- String? helpText,
- String? cancelText,
- String? confirmText,
- TimePickerEntryMode initialEntryMode = TimePickerEntryMode.dial,
- Color? primaryColor,
- Color? textColor,
- Color? backgroundColor,
- bool use24HourFormat = false,
- bool barrierDismissible = true,
})
Implementation
static Future<TimeOfDay?> showCustomTimePicker({
TimeOfDay? initialTime,
String? helpText,
String? cancelText,
String? confirmText,
TimePickerEntryMode initialEntryMode = TimePickerEntryMode.dial,
Color? primaryColor,
Color? textColor,
Color? backgroundColor,
bool use24HourFormat = false,
bool barrierDismissible = true,
}) async {
initialTime ??= TimeOfDay.now();
primaryColor ??= AppColors.primary;
backgroundColor ??= Colors.white;
textColor ??= AppColors.text;
return await showTimePicker(
context: Get.context!,
initialTime: initialTime,
helpText: helpText,
cancelText: cancelText,
confirmText: confirmText,
initialEntryMode: initialEntryMode,
builder: (context, child) {
return Theme(
data: Theme.of(context).copyWith(
colorScheme: ColorScheme.light(
primary: primaryColor ?? AppColors.primary,
onPrimary: Colors.white,
onSurface: textColor ?? AppColors.text,
surface: backgroundColor ?? Colors.white,
),
textButtonTheme: TextButtonThemeData(
style: TextButton.styleFrom(
foregroundColor: primaryColor ?? AppColors.primary,
textStyle: AppTextThemes.button(),
),
),
timePickerTheme: TimePickerThemeData(
backgroundColor: backgroundColor ?? Colors.white,
hourMinuteTextColor: primaryColor ?? AppColors.primary,
hourMinuteColor:
(primaryColor ?? AppColors.primary).withOpacity(0.1),
dayPeriodTextColor: primaryColor ?? AppColors.primary,
dayPeriodColor:
(primaryColor ?? AppColors.primary).withOpacity(0.1),
dialHandColor: primaryColor ?? AppColors.primary,
dialBackgroundColor:
(primaryColor ?? AppColors.primary).withOpacity(0.1),
dialTextColor: textColor ?? AppColors.text,
entryModeIconColor: primaryColor ?? AppColors.primary,
helpTextStyle:
AppTextThemes.bodyMedium(color: textColor ?? AppColors.text),
dayPeriodTextStyle: AppTextThemes.button(
color: primaryColor ?? AppColors.primary),
hourMinuteTextStyle: AppTextThemes.heading4(
color: primaryColor ?? AppColors.primary),
dialTextStyle:
AppTextThemes.bodyMedium(color: textColor ?? AppColors.text),
),
dialogBackgroundColor: backgroundColor ?? Colors.white,
textTheme: TextTheme(
labelSmall: AppTextThemes.caption(
color: (textColor ?? AppColors.text).withOpacity(0.7)),
),
),
child: child!,
);
},
barrierDismissible: barrierDismissible,
);
}