import 'package:flutter/material.dart'; import 'package:table_calendar/table_calendar.dart'; class RecipeCalendar extends StatefulWidget { const RecipeCalendar({super.key}); @override State createState() => _RecipeCalendarState(); } class _RecipeCalendarState extends State { // 当前选中的日期 DateTime _selectedDay = DateTime.now(); // 当前显示的月份 DateTime _focusedDay = DateTime.now(); @override Widget build(BuildContext context) { return Column( children: [ Card( elevation: 0, color: Colors.white, child: TableCalendar( locale: 'zh_CN', headerStyle: const HeaderStyle( formatButtonVisible: false, titleCentered: true, ), firstDay: DateTime.utc(2010, 1, 1), lastDay: DateTime.utc(2100, 12, 31), focusedDay: _focusedDay, selectedDayPredicate: (day) => isSameDay(_selectedDay, day), onDaySelected: (selectedDay, focusedDay) { if (!isSameDay(_selectedDay, selectedDay)) { setState(() { _selectedDay = selectedDay; _focusedDay = focusedDay; }); } }, onPageChanged: (focusedDay) { print("cxx"); _focusedDay = focusedDay; }, ), ), // 显示选中的日期 const SizedBox(height: 16), Text( '选中的日期: ${_selectedDay.year}-${_selectedDay.month}-${_selectedDay.day}', style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold), ), ], ); } }