106 lines
2.9 KiB
Dart
106 lines
2.9 KiB
Dart
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:table_calendar/table_calendar.dart';
|
|
|
|
class UserCalendarScreen extends StatefulWidget {
|
|
const UserCalendarScreen({super.key});
|
|
|
|
@override
|
|
State<UserCalendarScreen> createState() => UserCalendarScreenState();
|
|
}
|
|
|
|
class UserCalendarScreenState extends State<UserCalendarScreen> {
|
|
DateTime today = DateTime.now();
|
|
DateTime now = DateTime.now();
|
|
late int numDay;
|
|
|
|
CalendarFormat _calendarFormat = CalendarFormat.month;
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
|
|
today = DateTime.utc(today.year, today.month, today.day);
|
|
numDay = today.weekday;
|
|
}
|
|
|
|
void _onDaySelected(DateTime day, DateTime focusedDay) {
|
|
setState(() {
|
|
today = day;
|
|
numDay = today.weekday;
|
|
});
|
|
}
|
|
|
|
void _onFormatChange(CalendarFormat format) {
|
|
setState(() {
|
|
_calendarFormat = format;
|
|
});
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
DateTime lastDay = today.add(const Duration(days: 365));
|
|
|
|
return Scaffold(
|
|
appBar: AppBar(
|
|
title: const Text('Calendario'),
|
|
),
|
|
floatingActionButtonLocation: kIsWeb
|
|
? FloatingActionButtonLocation.startFloat
|
|
: FloatingActionButtonLocation.endFloat,
|
|
resizeToAvoidBottomInset: false,
|
|
body: Column(
|
|
children: [
|
|
Container(
|
|
color: const Color.fromARGB(255, 224, 247, 255),
|
|
child: TableCalendar(
|
|
// locale: 'es_MX',
|
|
firstDay: DateTime.now(),
|
|
lastDay: lastDay,
|
|
focusedDay: today,
|
|
availableGestures: AvailableGestures.all,
|
|
onDaySelected: _onDaySelected,
|
|
selectedDayPredicate: (day) => isSameDay(day, today),
|
|
calendarFormat: _calendarFormat,
|
|
onFormatChanged: _onFormatChange,
|
|
availableCalendarFormats: const {
|
|
CalendarFormat.month: 'Mes',
|
|
CalendarFormat.week: 'Semana',
|
|
CalendarFormat.twoWeeks: '2 Semanas',
|
|
},
|
|
),
|
|
),
|
|
SizedBox(
|
|
width: double.infinity,
|
|
child: Padding(
|
|
padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 8),
|
|
child: Text(
|
|
'adwa',
|
|
// DateFormat('dd MMMM yyyy', 'es').format(today),
|
|
style: const TextStyle(
|
|
color: Colors.black,
|
|
fontSize: 16,
|
|
fontWeight: FontWeight.w600,
|
|
),
|
|
),
|
|
),
|
|
),
|
|
const Divider(
|
|
height: 0,
|
|
),
|
|
Expanded(
|
|
child: SingleChildScrollView(
|
|
padding: const EdgeInsets.only(bottom: 15),
|
|
child: Column(
|
|
children: [
|
|
Text('Hola'),
|
|
],
|
|
),
|
|
),
|
|
)
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|