import 'package:fitnote/provider/health_provider.dart'; import 'package:fitnote/service/health_service.dart'; import 'package:fitnote/widget/record/record_daily.dart'; import 'package:flutter/material.dart'; import 'package:flutter_common/widget/common_widget.dart'; import 'package:table_calendar/table_calendar.dart'; import 'package:provider/provider.dart'; class HistoryPage extends StatefulWidget { const HistoryPage({super.key}); @override State createState() => _HistoryPageState(); } class _HistoryPageState extends State { final HealthService service = HealthService(); TableCalendar _calendar() { 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)) { setState(() { provider.selectedDate = selectedDay; provider.focusedDate = focusedDay; // provider.updateRecord(service.getRecordByDate(provider.selectedDate)); // provider.refreshSelectRecord(); }); } }, onPageChanged: (focusedDay) { provider.focusedDate = focusedDay; // provider.refreshRecordList(); }, // 自定义日期单元格构建器 // calendarBuilders: CalendarBuilders( // defaultBuilder: // (context, day, focusedDay) => // _buildDateItem(day, false, false, provider), // selectedBuilder: // (context, day, focusedDay) => // _buildDateItem(day, true, false, provider), // todayBuilder: // (context, day, focusedDay) => // _buildDateItem(day, false, true, provider), // ), ); } @override Widget build(BuildContext context) { return SingleChildScrollView( child: Column( children: [ CommonCard(child: _calendar()), const SizedBox(height: 24), RecordDaily(), ], ), ); } }