表格日历不会更改 focusDay

Joh*_*oah 5 flutter

我正在使用table_calendar包在页面上显示日历。我希望用户能够从日历中选择日期,但是当点击日期时,日期focusedDay不会改变,因此它始终保持默认值focusedDay

我尝试搜索文档,但我无法弄清楚出了什么问题,从文档看来它应该可以正常工作。

这就是我为 CalendarWidget 所做的:

TableCalendar(
                  focusedDay: _focusedDay,
                  firstDay: DateTime.now(),
                  lastDay: DateTime.utc(2030, 1, 1),
                  calendarFormat: CalendarFormat.month,
                  headerStyle: HeaderStyle(
                    formatButtonVisible: false,
                    titleCentered: true,
                    rightChevronIcon: Icon(
                      Icons.chevron_right,
                      size: 16,
                      color: Colors.grey,
                    ),
                    leftChevronIcon: Icon(
                      Icons.chevron_left,
                      size: 16,
                      color: Colors.grey,
                    ),
                  ),
                  onDaySelected: (selectedDay, focusedDay) {
                    setState(() {
                      _selectedDay = selectedDay;
                      _focusedDay = focusedDay;
                    });
                  },
                ),
Run Code Online (Sandbox Code Playgroud)

这是一个有状态的小部件内部,我_focusdDay在该类中拥有一个变量,并对其进行更新。TableCalendar 当然位于build该类的函数内。

Wes*_*sel 10

selectedDayPredicate不要忘记在您的中定义TableCalendar

TableCalendar(
...
selectedDayPredicate: (day) =>isSameDay(day, selectedDay),
...
)
Run Code Online (Sandbox Code Playgroud)

小部件将使用它来找出所选日期是哪一天