diff --git a/CHANGELOG.md b/CHANGELOG.md index 630bfc14..43e05dd8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ - # [1.1.1] (UnReleased) - Added showWeekTileBorder field whether to show border for header in month view. [#306](https://github.com/SimformSolutionsPvtLtd/flutter_calendar_view/issues/306) - Fixed an issue related to hiding day, which is not in the current month in MonthView. [#328](https://github.com/SimformSolutionsPvtLtd/flutter_calendar_view/issues/328) +- Added header title for full day events in week view. [#308](https://github.com/SimformSolutionsPvtLtd/flutter_calendar_view/issues/308) - Added support for double tapping gestures on any event in day, week, and month view. [#195](https://github.com/SimformSolutionsPvtLtd/flutter_calendar_view/issues/195) - Added support to set end time of day and week view. [#298](https://github.com/SimformSolutionsPvtLtd/flutter_calendar_view/issues/298) - Added support for horizontal scroll physics of week and month view page. [#314](https://github.com/SimformSolutionsPvtLtd/flutter_calendar_view/issues/314) diff --git a/README.md b/README.md index 7f76f072..2ed99f85 100644 --- a/README.md +++ b/README.md @@ -220,7 +220,8 @@ WeekView( hourLinePainter: (lineColor, lineHeight, offset, minuteHeight, showVerticalLine, verticalLineOffset) { return //Your custom painter. }, - weekPageHeaderBuilder: WeekHeader.hidden // To hide week header + weekPageHeaderBuilder: WeekHeader.hidden, // To hide week header + fullDayHeaderTitle: 'All day' // To set full day events header title ); ``` diff --git a/lib/src/week_view/_internal_week_view_page.dart b/lib/src/week_view/_internal_week_view_page.dart index 55d4584e..0aea29ef 100644 --- a/lib/src/week_view/_internal_week_view_page.dart +++ b/lib/src/week_view/_internal_week_view_page.dart @@ -12,7 +12,6 @@ import '../event_controller.dart'; import '../modals.dart'; import '../painters.dart'; import '../typedefs.dart'; -import '../constants.dart'; /// A single page for week view. class InternalWeekViewPage extends StatelessWidget { @@ -146,7 +145,7 @@ class InternalWeekViewPage extends StatelessWidget { final int endHour; /// Title of the full day events row - final String? fullDayHeaderTitle; + final String fullDayHeaderTitle; /// A single page for week view. const InternalWeekViewPage({ @@ -191,7 +190,7 @@ class InternalWeekViewPage extends StatelessWidget { required this.emulateVerticalOffsetBy, required this.onTileDoubleTap, required this.endHour, - this.fullDayHeaderTitle, + this.fullDayHeaderTitle = '', }) : super(key: key); @override @@ -237,36 +236,42 @@ class InternalWeekViewPage extends StatelessWidget { child: Container( decoration: BoxDecoration( border: Border( - bottom: BorderSide(color: hourIndicatorSettings.color, width: 2), + bottom: BorderSide( + color: hourIndicatorSettings.color, + width: 2, + ), ), ), child: Row( - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, children: [ - Container( - width: timeLineWidth + hourIndicatorSettings.offset, - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 2.0, horizontal: 1), + if (fullDayHeaderTitle.isNotEmpty) + Container( + width: timeLineWidth + hourIndicatorSettings.offset, + padding: const EdgeInsets.symmetric( + vertical: 2, + horizontal: 1, + ), child: Text( - fullDayHeaderTitle ?? "", + fullDayHeaderTitle, textAlign: TextAlign.center, maxLines: 2, overflow: TextOverflow.ellipsis, ), ), - ), ...List.generate( filteredDates.length, - (index) { - final fullDayEventList = controller.getFullDayEvent(filteredDates[index]); + (index) { + final fullDayEventList = + controller.getFullDayEvent(filteredDates[index]); return Container( width: weekTitleWidth, child: fullDayEventList.isEmpty ? null : fullDayEventBuilder.call( - fullDayEventList, - dates[index], - ), + fullDayEventList, + dates[index], + ), ); }, ) @@ -398,14 +403,16 @@ class InternalWeekViewPage extends StatelessWidget { endHour: endHour, ), if (showLiveLine && liveTimeIndicatorSettings.height > 0) - LiveTimeIndicator( - liveTimeIndicatorSettings: liveTimeIndicatorSettings, - width: width, - height: height, - heightPerMinute: heightPerMinute, - timeLineWidth: timeLineWidth, - startHour: startHour, - endHour: endHour, + IgnorePointer( + child: LiveTimeIndicator( + liveTimeIndicatorSettings: liveTimeIndicatorSettings, + width: width, + height: height, + heightPerMinute: heightPerMinute, + timeLineWidth: timeLineWidth, + startHour: startHour, + endHour: endHour, + ), ), ], ), diff --git a/lib/src/week_view/week_view.dart b/lib/src/week_view/week_view.dart index dcb29ae3..c89a1d14 100644 --- a/lib/src/week_view/week_view.dart +++ b/lib/src/week_view/week_view.dart @@ -232,7 +232,7 @@ class WeekView extends StatefulWidget { final ScrollPhysics? pageViewPhysics; /// Title of the full day events row - final String? fullDayHeaderTitle; + final String fullDayHeaderTitle; /// Main widget for week view. const WeekView({ @@ -289,7 +289,7 @@ class WeekView extends StatefulWidget { this.pageViewPhysics, this.onEventDoubleTap, this.endHour = Constants.hoursADay, - this.fullDayHeaderTitle, + this.fullDayHeaderTitle = '', }) : assert(!(onHeaderTitleTap != null && weekPageHeaderBuilder != null), "can't use [onHeaderTitleTap] & [weekPageHeaderBuilder] simultaneously"), assert((timeLineOffset) >= 0, @@ -331,7 +331,7 @@ class WeekViewState extends State> { late DateTime _currentWeek; late int _totalWeeks; late int _currentIndex; - late String? _fullDayHeaderTitle; + late String _fullDayHeaderTitle; late EventArranger _eventArranger;