feat:更新日历组件

This commit is contained in:
2025-07-11 16:48:04 +08:00
parent b56b822e01
commit 55ca36cba2
7 changed files with 103 additions and 106 deletions

View File

@@ -1,9 +1,19 @@
import 'package:flutter/material.dart';
import 'package:table_calendar/table_calendar.dart';
class RecipeCalendar extends StatelessWidget {
class RecipeCalendar extends StatefulWidget {
const RecipeCalendar({super.key});
@override
State<RecipeCalendar> createState() => _RecipeCalendarState();
}
class _RecipeCalendarState extends State<RecipeCalendar> {
// 当前选中的日期
DateTime _selectedDay = DateTime.now();
// 当前显示的月份
DateTime _focusedDay = DateTime.now();
@override
Widget build(BuildContext context) {
return Column(
@@ -12,11 +22,36 @@ class RecipeCalendar extends StatelessWidget {
elevation: 0,
color: Colors.white,
child: TableCalendar(
firstDay: DateTime.utc(2010, 10, 16),
lastDay: DateTime.utc(2030, 3, 14),
focusedDay: DateTime.now(),
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),
),
],
);
}