🐝Hive - task app: часть 2

Ссылка на пакет easy_date_timeline

https://pub.dev/packages/easy_date_timeline

// папка 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),
        ),
      ),
    );
  }
}

Last updated