0

I have a flutter app in which the Bottom Navigation Bar has the Syncfusion Calendar in one of the tabs.

In the first tab, there is a Floating Action Button which opens a Dialog and has a TextFormField. As soon as the Dialog opens, I get this error

The relevant error-causing widget was
SfCalendar
calendar.dart:41
When the exception was thrown, this was the stack
#2      new RRect._raw (dart:ui/geometry.dart:1283:15)
#3      new RRect.fromRectAndRadius (dart:ui/geometry.dart:1186:12)
#4      _AppointmentLayoutState._updateMonthAppointmentDetails
appointment_layout.dart:577
#5      _AppointmentLayoutState._updateAppointmentDetails
appointment_layout.dart:442
#6      _AppointmentLayoutState.didUpdateWidget
appointment_layout.dart:164
#7      StatefulElement.update
framework.dart:5142
#8      Element.updateChild
framework.dart:3660
#9      SingleChildRenderObjectElement.update
framework.dart:6384
#10     Element.updateChild
framework.dart:3660
#11     RenderObjectElement.updateChildren
framework.dart:5981
#12     MultiChildRenderObjectElement.update
framework.dart:6537
#13     Element.updateChild
framework.dart:3660
#14     SingleChildRenderObjectElement.update
framework.dart:6384
#15     Element.updateChild
framework.dart:3660
#16     ComponentElement.performRebuild
framework.dart:4993
#17     Element.rebuild
framework.dart:4690
#18     ProxyElement.update
framework.dart:5301
#19     Element.updateChild
framework.dart:3660
#20     RenderObjectElement.updateChildren
framework.dart:5981
#21     MultiChildRenderObjectElement.update
framework.dart:6537
#22     Element.updateChild
framework.dart:3660
#23     SingleChildRenderObjectElement.update
framework.dart:6384
#24     Element.updateChild
framework.dart:3660
#25     SingleChildRenderObjectElement.update
framework.dart:6384
#26     Element.updateChild
framework.dart:3660
#27     SingleChildRenderObjectElement.update
framework.dart:6384
#28     Element.updateChild
framework.dart:3660
#29     ComponentElement.performRebuild
framework.dart:4993
#30     StatefulElement.performRebuild
#56     StatefulElement.performRebuild
framework.dart:5133
#57     Element.rebuild
framework.dart:4690
#58     StatefulElement.update
framework.dart:5156
#59     Element.updateChild
framework.dart:3660
#60     ComponentElement.performRebuild
framework.dart:4993
#61     Element.rebuild
framework.dart:4690
#62     StatelessElement.update
framework.dart:5044
#63     Element.updateChild
framework.dart:3660
#64     ComponentElement.performRebuild
framework.dart:4993
#65     Element.rebuild
framework.dart:4690
#66     ProxyElement.update
framework.dart:5301
#67     _InheritedNotifierElement.update
inherited_notifier.dart:107
#68     Element.updateChild
framework.dart:3660
#69     SingleChildRenderObjectElement.update
framework.dart:6384
#70     Element.updateChild
framework.dart:3660
#71     ComponentElement.performRebuild
framework.dart:4993
#72     StatefulElement.performRebuild
framework.dart:5133
#73     Element.rebuild
framework.dart:4690
#74     StatefulElement.update
framework.dart:5156
#75     Element.updateChild
framework.dart:3660
#76     ComponentElement.performRebuild
framework.dart:4993
#77     Element.rebuild
framework.dart:4690
#78     ProxyElement.update
framework.dart:5301
#79     Element.updateChild
framework.dart:3660
#80     RenderObjectElement.updateChildren
framework.dart:5981
#81     MultiChildRenderObjectElement.update
framework.dart:6537
#82     Element.updateChild
framework.dart:3660
#83     SingleChildRenderObjectElement.update
framework.dart:6384
#84     Element.updateChild
framework.dart:3660
#85     SingleChildRenderObjectElement.update
framework.dart:6384
#86     Element.updateChild
framework.dart:3660
#87     ComponentElement.performRebuild
framework.dart:4993
#88     StatefulElement.performRebuild
framework.dart:5133
#89     Element.rebuild
framework.dart:4690
#90     StatefulElement.update
framework.dart:5156
#91     Element.updateChild
framework.dart:3660
#92     ComponentElement.performRebuild
framework.dart:4993
#93     Element.rebuild
framework.dart:4690
#94     StatelessElement.update
framework.dart:5044
#95     Element.updateChild
framework.dart:3660
#96     ComponentElement.performRebuild
framework.dart:4993
#97     StatefulElement.performRebuild
framework.dart:5133
#98     Element.rebuild
framework.dart:4690
#99     StatefulElement.update
framework.dart:5156
#100    Element.updateChild
framework.dart:3660
#101    SingleChildRenderObjectElement.update
framework.dart:6384
#102    Element.updateChild
framework.dart:3660
#103    ComponentElement.performRebuild
framework.dart:4993
#104    StatefulElement.performRebuild
framework.dart:5133
#105    Element.rebuild
framework.dart:4690
#106    StatefulElement.update
framework.dart:5156
#107    Element.updateChild
framework.dart:3660
#108    ComponentElement.performRebuild
framework.dart:4993
#109    Element.rebuild
framework.dart:4690
#110    ProxyElement.update
framework.dart:5301
#218    RendererBinding.drawFrame
binding.dart:516
#219    WidgetsBinding.drawFrame
binding.dart:865
#220    RendererBinding._handlePersistentFrameCallback
binding.dart:381
#221    SchedulerBinding._invokeFrameCallback
binding.dart:1289
#222    SchedulerBinding.handleDrawFrame
binding.dart:1218
#223    SchedulerBinding._handleDrawFrame
binding.dart:1076
#224    _invoke (dart:ui/hooks.dart:145:13)
#225    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:338:5)
#226    _drawFrame (dart:ui/hooks.dart:112:31)
(elided 2 frames from class _AssertionError)
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by widgets library ═══════════════════════════════════
'dart:ui/geometry.dart': Failed assertion: line 1283 pos 15: '<optimized out>': is not true.
The relevant error-causing widget was
SfCalendar
calendar.dart:41
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by widgets library ═══════════════════════════════════
Duplicate GlobalKey detected in widget tree.
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by widgets library ═══════════════════════════════════
'package:flutter/src/widgets/framework.dart': Failed assertion: line 6369 pos 12: 'child == _child': is not true.
framework.dart:6369
The relevant error-causing widget was
SfCalendar
calendar.dart:41
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by widgets library ═══════════════════════════════════
Duplicate GlobalKey detected in widget tree.
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by widgets library ═══════════════════════════════════
'package:flutter/src/widgets/framework.dart': Failed assertion: line 6369 pos 12: 'child == _child': is not true.
framework.dart:6369
The relevant error-causing widget was
SfCalendar
calendar.dart:41
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by widgets library ═══════════════════════════════════
Duplicate GlobalKey detected in widget tree.
════════════════════════════════════════════════════════════════════════════════
class CalendarScreen extends StatefulWidget {
  const CalendarScreen({super.key});

  @override
  State<CalendarScreen> createState() => _CalendarScreenState();
}

class _CalendarScreenState extends State<CalendarScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: const Appbar(),
        body: Subscription(
            options: SubscriptionOptions(
                document: gql(getCalTasks), variables: ({"user_id": useruid})),
            builder: (result) {
              if (result.isLoading) {
                return const Center(child: CircularProgressIndicator());
              }
              

              return SfCalendar(
                  firstDayOfWeek: 1,
                  cellBorderColor: Colors.grey[200],
                  backgroundColor:
                      (Theme.of(context).brightness == Brightness.dark)
                          ? Colors.black
                          : Colors.white,
                  showDatePickerButton: true,
                  view: CalendarView.month,
                  dataSource: MeetingDataSource(_getDataSource(tasks)),
                  monthViewSettings: const MonthViewSettings(
                      agendaViewHeight: 100,
                      agendaItemHeight: 30,
                      showAgenda: true,
                      appointmentDisplayMode:
                          MonthAppointmentDisplayMode.appointment));
            }));
  }
}

List<Meeting> _getDataSource(List events) {
  final List<Meeting> meetings = <Meeting>[];
  for (int i = 0; i < events.length; i++) {    
    meetings.add(Meeting(
        events['name'],
        events['date'],
        events['date'],
        colorEntry.value,
        true));
  }
  return meetings;
}

class MeetingDataSource extends CalendarDataSource {
  MeetingDataSource(List<Meeting> source) {
    appointments = source;
  }

  @override
  DateTime getStartTime(int index) {
    return appointments![index].from;
  }

  @override
  DateTime getEndTime(int index) {
    return appointments![index].from;
  }

  @override
  String getSubject(int index) {
    return appointments![index].eventName;
  }

  @override
  Color getColor(int index) {
    return appointments![index].background;
  }

  @override
  bool isAllDay(int index) {
    return appointments![index].isAllDay;
  }
}

class Meeting {
  Meeting(this.eventName, this.from, this.to, this.background, this.isAllDay);
  String eventName;
  DateTime from;
  DateTime to;
  Color background;
  bool isAllDay;
}

I have also checked that this happens only in iOS simulator and real device not in Android.

However, if I remove the Calendar Screen and set it to any other screen, I don't get any error..

Any help is appreciated

0 Answers0