diff --git a/CHANGELOG.md b/CHANGELOG.md index 633999f7..5c06255e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ Issue [#237 - DayView & MonthView layout issue in landscape mode](https://github.com/SimformSolutionsPvtLtd/flutter_calendar_view/issues/237) - Added Feature [#57 - Change default start hour in DayView](https://github.com/SimformSolutionsPvtLtd/flutter_calendar_view/issues/57) +- Fixed + Issue [#225 - Unwanted space at top in DayView while using sliver](https://github.com/SimformSolutionsPvtLtd/flutter_calendar_view/issues/225) + # [1.0.3 - 3 Apr 2023](https://github.com/SimformSolutionsPvtLtd/flutter_calendar_view/tree/1.0.3) diff --git a/lib/src/components/day_view_components.dart b/lib/src/components/day_view_components.dart index 3497a4eb..2cda9a06 100644 --- a/lib/src/components/day_view_components.dart +++ b/lib/src/components/day_view_components.dart @@ -140,6 +140,7 @@ class DayPageHeader extends CalendarPageHeader { dateStringBuilder ?? DayPageHeader._dayStringBuilder, headerStyle: headerStyle, ); + static String _dayStringBuilder(DateTime date, {DateTime? secondaryDate}) => "${date.day} - ${date.month} - ${date.year}"; } @@ -227,7 +228,7 @@ class FullDayEventView extends StatelessWidget { constraints: boxConstraints, child: ListView.builder( itemCount: events.length, - padding: padding, + padding: padding ?? EdgeInsets.zero, shrinkWrap: true, itemBuilder: (context, index) => InkWell( onTap: () => onEventTap?.call(events[index], date), diff --git a/lib/src/day_view/_internal_day_view_page.dart b/lib/src/day_view/_internal_day_view_page.dart index 68ae33c9..706cf02c 100644 --- a/lib/src/day_view/_internal_day_view_page.dart +++ b/lib/src/day_view/_internal_day_view_page.dart @@ -133,12 +133,15 @@ class InternalDayViewPage extends StatelessWidget { @override Widget build(BuildContext context) { + final fullDayEventList = controller.getFullDayEvent(date); return Container( height: height, width: width, child: Column( children: [ - fullDayEventBuilder(controller.getFullDayEvent(date), date), + fullDayEventList.isEmpty + ? SizedBox.shrink() + : fullDayEventBuilder(fullDayEventList, date), Expanded( child: SingleChildScrollView( controller: scrollController, diff --git a/lib/src/week_view/_internal_week_view_page.dart b/lib/src/week_view/_internal_week_view_page.dart index 9f286828..3f7ec3b4 100644 --- a/lib/src/week_view/_internal_week_view_page.dart +++ b/lib/src/week_view/_internal_week_view_page.dart @@ -109,7 +109,7 @@ class InternalWeekViewPage extends StatelessWidget { final EventScrollConfiguration scrollConfiguration; /// Display full day events. - final FullDayEventBuilder? fullDayEventBuilder; + final FullDayEventBuilder fullDayEventBuilder; /// A single page for week view. const InternalWeekViewPage({ @@ -141,7 +141,7 @@ class InternalWeekViewPage extends StatelessWidget { required this.weekDays, required this.minuteSlotSize, required this.scrollConfiguration, - this.fullDayEventBuilder, + required this.fullDayEventBuilder, required this.weekDetectorBuilder, }) : super(key: key); @@ -189,13 +189,19 @@ class InternalWeekViewPage extends StatelessWidget { SizedBox(width: timeLineWidth + hourIndicatorSettings.offset), ...List.generate( filteredDates.length, - (index) => SizedBox( - width: weekTitleWidth, - child: fullDayEventBuilder?.call( - controller.getFullDayEvent(filteredDates[index]), - dates[index], - ), - ), + (index) { + final fullDayEventList = + controller.getFullDayEvent(filteredDates[index]); + return fullDayEventList.isEmpty + ? SizedBox.shrink() + : SizedBox( + width: weekTitleWidth, + child: fullDayEventBuilder.call( + fullDayEventList, + dates[index], + ), + ); + }, ) ], ),