Я делаю приложение, используя sfcalendar и флаттер. Я хочу поместить изображение в поле даты календаря.
Я хочу сделать это как этот образ. Это ссылка на изображение Я хочу поставить изображение на 11 января, как эта картинка.
Это код sfcalendar.
body: SfCalendar(
view: CalendarView.month,
dataSource: MeetingDataSource(_getDataSource()),
monthViewSettings: MonthViewSettings(
appointmentDisplayMode: MonthAppointmentDisplayMode.appointment),
),
А это исходный код данных.
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].to;
}
@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;
}
List<Meeting> _getDataSource() {
final List<Meeting> meetings = <Meeting>[];
final DateTime today = DateTime.now();
final DateTime startTime = DateTime.parse('2023-01-01 00:00:00.000');
final DateTime endTime = startTime.add(const Duration(hours: 2));
meetings.add(Meeting(
'Happy new year!', startTime, endTime, const Color(0xFF0F8644), false));
return meetings;
}
Я искал на разных сайтах, как поместить изображение в поле даты sfcalendar, но не смог его найти. Для справки, название изображения «Penguin.png». Пожалуйста, помогите мне!
return Scaffold(
body: SafeArea(
child: SfCalendar(
view: CalendarView.month,
monthCellBuilder: (context, details) {
return Column(
children: [
Text(
details.date.day.toString(),
),
details.date.day == DateTime.now().day
? Icon(Icons.people)
: SizedBox()
],
);
},
dataSource: MeetingDataSource(_getDataSource()),
monthViewSettings: MonthViewSettings(
appointmentDisplayMode: MonthAppointmentDisplayMode.appointment),
),
),
);