import 'package:fitnote/models/health.dart'; import 'package:fitnote/provider/health_provider.dart'; import 'package:fitnote/service/health_service.dart'; import 'package:flutter/material.dart'; import 'package:table_calendar/table_calendar.dart'; import 'package:provider/provider.dart'; class RecordCalendar extends StatefulWidget { const RecordCalendar({super.key}); @override State createState() => _RecordCalendarState(); } class _RecordCalendarState extends State { final HealthService service = HealthService(); @override Widget build(BuildContext context) { final provider = context.watch(); return TableCalendar( locale: 'zh_CN', headerStyle: const HeaderStyle( headerPadding: EdgeInsets.symmetric(vertical: 0), formatButtonVisible: false, titleCentered: true, ), firstDay: DateTime.utc(2010, 1, 1), lastDay: DateTime.utc(2100, 12, 31), focusedDay: provider.selectedDate, selectedDayPredicate: (day) => isSameDay(provider.selectedDate, day), onDaySelected: (selectedDay, focusedDay) { if (!isSameDay(provider.selectedDate, selectedDay)) { provider.updateSelectDate(selectedDay); HealthRecord record = service.getRecordByDate(provider.selectedDate); provider.updateRecord(record); provider.initForm(record); } } ); } }