calendar_view 2.0.0 copy "calendar_view: ^2.0.0" to clipboard
calendar_view: ^2.0.0 copied to clipboard

A Flutter package allows you to easily implement all calendar UI and calendar event functionality.

example/lib/main.dart

import 'dart:ui';

import 'package:calendar_view/calendar_view.dart';
import 'package:example/theme/app_theme.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

import 'l10n/app_localizations.dart';
import 'localization/calendar_locales.dart';
import 'localization/locale_controller.dart';
import 'pages/home_page.dart';
import 'theme/app_colors.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  bool isDarkMode = false;
  final String initialLocale = 'en';

  @override
  void initState() {
    super.initState();
    CalendarLocales.initialize();
  }

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return LocaleController(
      initialLocale: PackageStrings.selectedLocale,
      child: Builder(
        builder: (context) {
          final localeController = LocaleController.of(context);
          return CalendarThemeProvider(
            calendarTheme: CalendarThemeData(
              monthViewTheme: isDarkMode
                  ? MonthViewThemeData.dark()
                  : MonthViewThemeData.light(),
              dayViewTheme: isDarkMode
                  ? DayViewThemeData.dark()
                  : DayViewThemeData.light().copyWith(
                          hourLineColor: AppColors.primary,
                        )
                        as DayViewThemeData,
              weekViewTheme: isDarkMode
                  ? WeekViewThemeData.dark()
                  : WeekViewThemeData.light(),
              multiDayViewTheme: isDarkMode
                  ? MultiDayViewThemeData.dark()
                  : MultiDayViewThemeData.light(),
            ),
            child: CalendarControllerProvider(
              controller: EventController(),
              child: MaterialApp(
                title: 'Flutter Calendar Page Demo',
                debugShowCheckedModeBanner: false,
                locale: Locale(localeController.currentLocale),
                theme: AppTheme.light,
                darkTheme: AppTheme.dark,
                themeMode: isDarkMode ? ThemeMode.dark : ThemeMode.light,
                localizationsDelegates: [
                  AppLocalizations.delegate,
                  GlobalMaterialLocalizations.delegate,
                  GlobalCupertinoLocalizations.delegate,
                  GlobalWidgetsLocalizations.delegate,
                ],
                supportedLocales: [
                  Locale('en', ''),
                  Locale('es', ''),
                  Locale('ar', ''),
                ],
                scrollBehavior: ScrollBehavior().copyWith(
                  dragDevices: {
                    PointerDeviceKind.trackpad,
                    PointerDeviceKind.mouse,
                    PointerDeviceKind.touch,
                  },
                ),
                home: HomePage(
                  onChangeTheme: (isDark) =>
                      setState(() => isDarkMode = isDark),
                ),
              ),
            ),
          );
        },
      ),
    );
  }
}
976
likes
160
points
35.8k
downloads

Documentation

API reference

Publisher

verified publishersimform.com

Weekly Downloads

A Flutter package allows you to easily implement all calendar UI and calendar event functionality.

Repository (GitHub)
View/report issues
Contributing

License

MIT (license)

Dependencies

flutter

More

Packages that depend on calendar_view