#flutter #calendar
#flutter #Календарь
Вопрос:
Я пытаюсь создать приложение для календаря, используя карусель календаря flutter. Что мне нужно сделать, так это показать события, назначенные месяцу, когда пользователь проводит пальцем по месяцам.
checkCurrentMonth() {
selectedMonth = DateTime.parse(_targetDateTime.toString()).month.toInt();
selectedYear = DateTime.parse(_targetDateTime.toString()).year.toInt();
_markedDateMap.events.forEach((key, value) {
// print(_markedDateMap.events);
print(DateTime.parse(key.toString()).month.toInt());
if (selectedMonth == DateTime.parse(key.toString()).month.toInt() amp;amp;
selectedYear == DateTime.parse(key.toString()).year.toInt()) {
// print(_markedDateMap.events[key]);
_selectedHolidays.add(_markedDateMap.events[key]);
}
});
// for (var item in _selectedHolidays) {
// print("000000000000000 $item");
// gatheredEvents.add(GatherEvents.fromJson(item));
// }
print(_selectedHolidays[0].getTitle());
print(_markedDateMap.events.length);
}
Я получаю следующую ошибку.
Class 'List<Event>' has no instance getter 'getTitle'.
Receiver: Instance(length:1) of '_GrowableList'
Tried calling: getTitle
вот моя _markedDateMap
EventList<Event> _markedDateMap = new EventList<Event>(
events: {
new DateTime(2020, 12, 29): [
new Event(
date: new DateTime(2020, 12, 29),
title: 'Poya Day',
icon: _poyaeventIcon(DateTime(2020, 12, 29).day.toString()),
dot: Container(
margin: EdgeInsets.symmetric(horizontal: 1.0),
color: Colors.red,
height: 5.0,
width: 5.0,
),
),
],
new DateTime(2021, 01, 14): [
new Event(
date: new DateTime(2021, 01, 14),
title: 'Tamil Thai Pongal Day',
icon: _otheralleventIcon(DateTime(2021, 01, 14).day.toString()),
dot: Container(
margin: EdgeInsets.symmetric(horizontal: 1.0),
color: Colors.red,
height: 5.0,
width: 5.0,
),
),
],
},
);
пожалуйста, помогите мне с этим.
Комментарии:
1. Где ваша
_markerdDateMap
декларация?2. Привет @dm_tr Я отредактировал свой вопрос
3. Проверьте мой ответ
Ответ №1:
Кроме встроенных методов, вы не можете вызывать другие методы List
. На самом деле вы вызываете метод getTitle
из списка Event
. Если вы хотите увидеть заголовок всех событий вашего списка, вы должны либо использовать цикл, либо получить определенный индекс.
for (var event in _selectedHolidays[0]) print(event.getTitle());
// or
print(_selectedHolidays[0].first.getTitle());