You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
uco-mobile-poc/lib/app/custom_widgets/date_picker.dart

95 lines
3.8 KiB
Dart

import 'package:calendar_date_picker2/calendar_date_picker2.dart';
import 'package:flutter/material.dart';
import 'package:flutter_rounded_date_picker/flutter_rounded_date_picker.dart';
import 'package:get/get.dart';
import '../res/app_colors.dart';
class DatePicker {
static Future<DateTime?> showDatePicker(BuildContext context) async {
return await showRoundedDatePicker(
borderRadius: 10,
context: context,
onTapDay: (date, test) {
return true;
},
textPositiveButton: "Yes",
theme: ThemeData(
primarySwatch: Colors.green,
),
styleDatePicker: MaterialRoundedDatePickerStyle(
textStyleDayButton:
const TextStyle(fontSize: 25, color: Colors.white),
textStyleYearButton: const TextStyle(
fontSize: 15,
color: Colors.white,
),
textStyleDayHeader: const TextStyle(
fontSize: 14,
color: AppColors.colorPrimary,
),
backgroundHeader: AppColors.colorPrimary,
textStyleCurrentDayOnCalendar: const TextStyle(
fontSize: 12, color: Colors.grey, fontWeight: FontWeight.normal),
textStyleDayOnCalendar:
TextStyle(fontSize: 12, color: Colors.black.withOpacity(0.9)),
textStyleDayOnCalendarSelected: TextStyle(
fontSize: 12,
color: AppColors.white.withOpacity(0.9),
fontWeight: FontWeight.bold),
textStyleDayOnCalendarDisabled:
TextStyle(fontSize: 12, color: Colors.grey.withOpacity(0.1)),
textStyleMonthYearHeader: TextStyle(
fontSize: 12,
color: Colors.black.withOpacity(0.9),
fontWeight: FontWeight.bold),
// paddingDatePicker: EdgeInsets.all(0),
// paddingMonthHeader: EdgeInsets.all(15),
paddingActionBar: const EdgeInsets.all(5),
paddingDateYearHeader: const EdgeInsets.all(10),
sizeArrow: 20,
colorArrowNext: Colors.black.withOpacity(0.9),
colorArrowPrevious: Colors.black.withOpacity(0.9),
marginLeftArrowPrevious: 8,
marginTopArrowPrevious: 8,
marginTopArrowNext: 8,
marginRightArrowNext: 8,
// textStyleButtonAction: TextStyle(fontSize: 208, color: Colors.white),
textStyleButtonPositive: const TextStyle(
fontSize: 15, color: Colors.white, fontWeight: FontWeight.bold),
textStyleButtonNegative:
TextStyle(fontSize: 15, color: Colors.white.withOpacity(0.5)),
decorationDateSelected: const BoxDecoration(
color: AppColors.colorPrimary, shape: BoxShape.circle),
backgroundPicker: AppColors.white.withOpacity(0.9),
backgroundActionBar: AppColors.colorPrimary.withOpacity(0.9),
// backgroundHeaderMonth: AppColors.primary.withOpacity(0.9),
),
styleYearPicker: MaterialRoundedYearPickerStyle(
textStyleYear: const TextStyle(fontSize: 20, color: Colors.grey),
textStyleYearSelected: const TextStyle(
fontSize: 20, color: Colors.grey, fontWeight: FontWeight.bold),
heightYearRow: 30,
backgroundPicker: AppColors.colorPrimary.withOpacity(0.3),
));
// Toasty.success("--------->>> " + newDateTime.toString());
}
static Future<List<DateTime?>?> showRangeDatePicker() async {
return showCalendarDatePicker2Dialog(
context: Get.context!,
config: CalendarDatePicker2WithActionButtonsConfig(
calendarType: CalendarDatePicker2Type.range,
allowSameValueSelection: false,
currentDate: DateTime.now(),
firstDate: DateTime(2020),
lastDate: DateTime.now().add(Duration(days: 1)),
),
dialogSize: Size(Get.width, 150),
);
}
}