onTextTapped method
void
onTextTapped(
- bool isMax
)
Implementation
void onTextTapped(bool isMax) {
if (_datePickerController.isShow) return;
// String format = 'yyyy年,MM月,dd日';
// DateTime? minDate = DateTimeFormatter.convertIntValueToDateTime(
// (widget.item.extMap)['min']);
// DateTime? maxDate = DateTimeFormatter.convertIntValueToDateTime(
// (widget.item.extMap)['max']);
DateTime? minSelectedDateTime = SelectionUtil.isEmpty(widget.item.customMap)
? null
: DateTimeFormatter.convertIntValueToDateTime(
widget.item.customMap!['min']);
DateTime? maxSelectedDateTime = SelectionUtil.isEmpty(widget.item.customMap)
? null
: DateTimeFormatter.convertIntValueToDateTime(
widget.item.customMap!['max']);
//DateTime? _minDateTime;
//DateTime? _maxDateTime;
// if (widget.item.customMap == null ||
// (widget.item.customMap!['min'] == null &&
// widget.item.customMap!['max'] == null)) {
// // 如果开始时间和结束时间均未选择
// _minDateTime = minDate;
// _maxDateTime = maxDate;
// } else {
// _minDateTime = !isMax ? minDate : (minSelectedDateTime ?? minDate);
// _maxDateTime = isMax ? maxDate : (maxSelectedDateTime ?? maxDate);
// }
Widget content = TableCalendar(
locale: "zh",
firstDay: DateTime(2000, 1, 1),
lastDay: DateTime(2050, 12, 31),
focusedDay: DateTime.now(),
calendarFormat: CalendarFormat.month,
rangeSelectionMode: RangeSelectionMode.toggledOn,
rangeStartDay: minSelectedDateTime,
rangeEndDay: maxSelectedDateTime,
onRangeSelected: (start, end, focusedDay) {
widget.item.isSelected = true;
widget.item.customMap ??= {};
widget.item.customMap!['min'] =
start?.millisecondsSinceEpoch.toString() ?? "";
widget.item.customMap!['max'] =
end?.millisecondsSinceEpoch.toString() ?? "";
closeSelectionPopupWindow();
if (!isMax &&
SelectionUtil.isEmpty(widget.maxTextEditingController.text)) {
onTextTapped(true);
}
setState(() {});
},
);
OverlayEntry entry = _createDatePickerEntry(context, content);
Overlay.of(context).insert(entry);
_datePickerController.entry = entry;
_datePickerController.show();
}