我正在使用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)
小部件将使用它来找出所选日期是哪一天
| 归档时间: |
|
| 查看次数: |
7620 次 |
| 最近记录: |