Failed assertion: line 1205 pos 12: '<optimized out>': is not true

1.9k views Asked by At

I am new to flutter and facing an issue in Syncfusion Calendar widget. Any help will be appreciated. Here is the code inside my build widget:

  return  Scaffold(
  resizeToAvoidBottomInset: false, // set it to false
  body: SafeArea(
    child: SfCalendar(
                view: CalendarView.month,
                dataSource:getData(),
                monthViewSettings: MonthViewSettings(showAgenda: true,),

      ),
  ),
); 

'dart:ui/painting.dart': Failed assertion: line 1205 pos 12: '': is not true.

Here is the exception line:4 > child: SfCalendar()

Here is the stacktrace:

**> The relevant error-causing widget was: SfCalendar

file:///Users/kashif/Desktop/AppRack/clique/lib/bottomDashboard/Calendar.dart:47:16 When the exception was thrown, this was the stack: #2 Paint.color= (dart:ui/painting.dart:1205:12) #3 _AppointmentRenderObject._drawMonthAppointmentIndicator (package:syncfusion_flutter_calendar/src/calendar/appointment_layout/appointment_layout.dart:2042:15) #4 _AppointmentRenderObject._drawMonthAppointment (package:syncfusion_flutter_calendar/src/calendar/appointment_layout/appointment_layout.dart:1698:9) #5 _AppointmentRenderObject._drawCustomAppointmentView (package:syncfusion_flutter_calendar/src/calendar/appointment_layout/appointment_layout.dart:1662:11) #6 _AppointmentRenderObject.paint (package:syncfusion_flutter_calendar/src/calendar/appointment_layout/appointment_layout.dart:1614:7) #7 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2396:7) #8 PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:139:11) #9 PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5) #10 PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:975:29) #11 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:464:19) #12 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:879:13) #13 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:328:5) #14 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15) #15 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9) #16 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:996:5) #20 _invoke (dart:ui/hooks.dart:163:10) #21 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:259:5) #22 _drawFrame (dart:ui/hooks.dart:126:31) (elided 5 frames from class _AssertionError and dart:async) The following RenderObject was being processed when the exception was fired: _AppointmentRenderObject#b4ead ... needs compositing ... parentData: (can use size) ... constraints: BoxConstraints(w=411.4, h=452.8) ... layer: OffsetLayer#2d0bc ... engine layer: OffsetEngineLayer#fc8e9 ... offset: Offset(0.0, 0.0) ... size: Size(411.4, 452.8) RenderObject: _AppointmentRenderObject#b4ead
needs compositing parentData: (can use size) constraints: BoxConstraints(w=411.4, h=452.8) layer: OffsetLayer#2d0bc engine layer: OffsetEngineLayer#fc8e9 offset: Offset(0.0, 0.0) size: Size(411.4, 452.8) ====================================================================================================**

1

There are 1 answers

0
Muthu lakshmi On BEST ANSWER

Based on the provided information we have checked, and we could not reproduce the mentioned issue from our end. We have prepared a simple sample for the same, based on the given stack, we suspect that appointment color set as null in the sample. Please find the code snippet for the same.

Code snippet:

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart';
import 'package:syncfusion_flutter_calendar/calendar.dart';

void main() => runApp(AgendaView());

class AgendaView extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Agenda(),
    );
  }
}

class Agenda extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => AgendaExample();
}

class AgendaExample extends State<Agenda> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomInset: false,
      body: SafeArea(
        child: SfCalendar(
          view: CalendarView.month,
          dataSource: MeetingDateSource(_getDataSource()),
          monthViewSettings: MonthViewSettings(showAgenda: true),
        ),
      ),
    );
  }
}

List<Meeting> _getDataSource() {
  List<Meeting> meets = <Meeting>[];
  meets.add(Meeting('Meeting', DateTime.now(),
      DateTime.now().add(Duration(minutes: 30)), Colors.pink, true));
  return meets;
}

class MeetingDateSource extends CalendarDataSource {
  MeetingDateSource(List<Meeting> source) {
    appointments = source;
  }
  @override
  String getSubject(int index) {
    return appointments![index].eventname;
  }

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

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

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

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

class Meeting {
  Meeting(this.eventname, this.from, this.to, this.bgclr, this.bval);
  String eventname;
  DateTime from;
  DateTime to;
  Color bgclr;
  bool bval;
}

If the shared information does not meet your requirement, could you please modify the shared sample to replicate the issue or if possible, share the calendar code snippets used with replication procedure, so that we could analyze further and provide you a possible solution at the earliest.