【问题标题】:Failed assertion: line 1205 pos 12: '<optimized out>': is not true断言失败:第 1205 行第 12 行:“<优化输出>”:不正确
【发布时间】:2021-10-25 08:45:02
【问题描述】:

我是 Flutter 的新手,在 Syncfusion 日历小部件中遇到问题。任何帮助将不胜感激。这是我的构建小部件中的代码:

  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':断言失败:第 1205 行 pos 12:'':不正确。

这里是异常行:4 > child: SfCalendar()

这是堆栈跟踪:

**> 相关的导致错误的小部件是:SfCalendar

file:///Users/kashif/Desktop/AppRack/clique/lib/bottomDashboard/Calendar.dart:47:16 抛出异常时,这是堆栈: #2 Paint.color= (dart:ui/painting.dart:1205:12) #3 _AppointmentRenderObject._drawMonthAppointmentIndicator(包:syncfusion_flutter_calendar/src/calendar/appointment_layout/appointment_layout.dart:2042:15) #4 _AppointmentRenderObject._drawMonthAppointment(包:syncfusion_flutter_calendar/src/calendar/appointment_layout/appointment_layout.dart:1698:9) #5 _AppointmentRenderObject._drawCustomAppointmentView(包:syncfusion_flutter_calendar/src/calendar/appointment_layout/appointment_layout.dart:1662:11) #6 _AppointmentRenderObject.paint(包: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)(从 _AssertionError 类和 dart:async 中删除了 5 帧)以下 RenderObject 是 触发异常时正在处理: _AppointmentRenderObject#b4ead ...需要合成... parentData:(可以使用大小)...约束:BoxConstraints(w = 411.4, h=452.8) ...层:OffsetLayer#2d0bc ...引擎层: OffsetEngineLayer#fc8e9 ... 偏移量:Offset(0.0, 0.0) ... 大小: 大小(411.4, 452.8) 渲染对象:_AppointmentRenderObject#b4ead
需要合成 parentData:(可以使用大小)约束: BoxConstraints(w=411.4, h=452.8) 层:OffsetLayer#2d0bc 引擎层:OffsetEngineLayer#fc8e9 偏移量:偏移量(0.0,0.0)尺寸:尺寸(411.4,452.8) ==================================================== ==================================================== **

【问题讨论】:

  • 你能提供堆栈跟踪吗?
  • @NiyasAli 更新了问题,请检查。

标签: flutter flutter-layout syncfusion syncfusion-calendar


【解决方案1】:

根据我们检查过的所提供信息,我们无法从最终重现上述问题。我们为此准备了一个简单的样本,基于给定的堆栈,我们怀疑样本中的约会颜色设置为空。请找到相同的代码 sn-p。

代码 sn-p:

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;
}

如果共享信息不符合您的要求,您能否修改共享示例以复制问题,或者如果可能,共享用于复制过程的日历代码 sn-ps,以便我们进一步分析并为您提供尽早解决。

【讨论】:

    猜你喜欢
    • 2021-09-17
    • 2020-04-22
    • 2020-12-29
    • 2021-02-23
    • 2021-03-16
    • 2021-11-02
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多