Hive - task app: часть 2
Last updated
Last updated
// папка screens
// file main_screen.dart
import 'package:flutter/material.dart';
import 'package:hive_task_app/utils/colors.dart';
import 'package:hive_task_app/widgets/calendar.dart';
import 'package:hive_task_app/widgets/icon_button_widget.dart';
class MainScreen extends StatelessWidget {
const MainScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: indigo,
appBar: AppBar(
iconTheme: const IconThemeData(color: white, size: 30),
backgroundColor: indigo,
actions: [
IconButtonWidget(
iconData: Icons.add_box,
onPressed: (){ },
),
],
),
drawer: const Drawer(),
body: const Column(
children: [
SizedBox(
height: 200,
// В этом видео уроке мы добавили только каленьдарь
child: Calendar(
monthColor: white,
activeColor: white,
activeTextColor: indigo,
inActiveColor: indigoAccent,
inActiveTextColor: white,
),
),
ContainerBody()
],
),
);
}
}
class ContainerBody extends StatelessWidget {
const ContainerBody({super.key});
@override
Widget build(BuildContext context) {
return Expanded(
child: Container(
height: double.infinity,
decoration: const BoxDecoration(
color: white,
borderRadius: BorderRadius.only(
topRight: Radius.circular(45), topLeft: Radius.circular(45),),),
),
);
}
}
// папка widgets
// file calendar.dart
import 'package:flutter/material.dart';
import 'package:easy_date_timeline/easy_date_timeline.dart';
import 'package:hive_task_app/utils/colors.dart';
class Calendar extends StatelessWidget {
final Color monthColor;
final Color activeColor;
final Color inActiveColor;
final Color activeTextColor;
final Color inActiveTextColor;
const Calendar(
{super.key,
required this.monthColor,
required this.activeColor,
required this.inActiveColor,
required this.activeTextColor,
required this.inActiveTextColor});
@override
Widget build(BuildContext context) {
return EasyDateTimeLine(
initialDate: DateTime.now(),
onDateChange: (selectedDate) {
//`selectedDate` the new date selected.
},
headerProps: EasyHeaderProps(
showMonthPicker: false,
monthPickerType: MonthPickerType.switcher,
dateFormatter: const DateFormatter.fullDateDMonthAsStrY(),
selectedDateStyle:
TextStyle(fontSize: 25, color: monthColor, fontWeight: FontWeight.bold),
),
dayProps: EasyDayProps(
height: 80,
dayStructure: DayStructure.dayStrDayNum,
activeDayStyle: DayStyle(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20),
color: activeColor,
),
dayStrStyle: TextStyle(
fontSize: 18, fontWeight: FontWeight.bold, color: activeTextColor),
dayNumStyle: TextStyle(
fontSize: 25, fontWeight: FontWeight.bold, color: activeTextColor),
),
inactiveDayStyle: DayStyle(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20),
color: inActiveColor,
),
dayStrStyle: TextStyle(
fontSize: 18, fontWeight: FontWeight.bold, color: inActiveTextColor),
dayNumStyle: TextStyle(
fontSize: 25, fontWeight: FontWeight.bold, color: inActiveTextColor),
),
),
);
}
}