58 lines
1.7 KiB
Dart
58 lines
1.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:table_calendar/table_calendar.dart';
|
|
|
|
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(
|
|
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),
|
|
),
|
|
],
|
|
);
|
|
}
|
|
} |