我观看了一个关于 Syncfusion 日历的视频,虽然它作为一个独立的小部件工作,但当我们尝试为我们的应用程序实现它时,它就无法正常工作。它给我们带来了一个空白屏幕或 Appbar 和 FloatingActionButton 只出现。我怎样才能让它可见?
请注意,我们没有将此小部件作为主页,并且必须可以从仪表板本身访问。
class CalendarTeacherPage extends StatefulWidget {
const CalendarTeacherPage({Key? key}) : super(key: key);
@override
_CalendarTeacherPageState createState() => _CalendarTeacherPageState();
}
class _CalendarTeacherPageState extends State<CalendarTeacherPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(child: const CalendarWidget()),
appBar: AppBar(
title: const Text('Calendar'),
centerTitle: true,
),
floatingActionButton: FloatingActionButton(
child: const Icon(Icons.add, color: Colors.white),
backgroundColor: Colors.red,
onPressed: () => Navigator.of(context).push(
MaterialPageRoute(builder: (context) => const EventEditingPage()),
),
),
);
}
}
这个是为我们的 CalendarWidget 准备的,我们认为它存在错误。
class CalendarWidget extends StatelessWidget {
const CalendarWidget({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final events = Provider.of<EventProvider>(context).events;
return SfCalendar(
view: CalendarView.schedule,
dataSource: EventDataSource(events),
initialSelectedDate: DateTime.now(),
cellBorderColor: Colors.transparent,
onLongPress: (details) {
final provider = Provider.of<EventProvider>(context, listen: true);
provider.setDate(details.date!);
showModalBottomSheet(
context: context,
builder: (context) => const TasksWidget(),
);
},
);
}
}
将此代码从作为主要小部件的 SfCalendar 迁移到它作为我们仪表板的一部分已被证明是困难的,我只知道问题出在 SfCalendar 中以及我将其放置在哪里。我该如何解决?