Coder Social home page Coder Social logo

srini-b / calendar_appbar Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vpalcar/calendar_appbar

1.0 0.0 0.0 135 KB

Flutter package of custom AppBar widget with calendar

License: MIT License

Objective-C 0.10% Kotlin 0.33% Dart 94.42% Swift 1.09% HTML 4.05%

calendar_appbar's Introduction

Calendar AppBar

Flutter package for custom AppBar with calendar view.

The package is currently optimized for mobile devices, therefore used only for mobile devices is prefered. It also works for larger screens, although it does not follow the rules of good UI. It is planned to be optimized shortly.

Image Image Image

Features

  • Define your custom color scheme
  • Enable or disable full-screen calendar view
  • Provide a list of dates that will be marked on the calendar view
  • Manipulate with a range of displayed dates
  • Set the language of your choice

Installation and Basic Usage

Add to pubspec.yaml:

dependencies:
  calendar_appbar: ^0.0.6

Then import it to your project:

import 'package:calendar_appbar/calendar_appbar.dart';

Finaly add CalendarAppBar in Scaffold:

@override
Widget build(BuildContext context) {
  return Scaffold(
      appBar: CalendarAppBar(
        onDateChanged: (value) => print(value),
        firstDate: DateTime.now().subtract(Duration(days: 140)),
        lastDate: DateTime.now(),
      ),
    );
}

There are three required attributes of class CalendarAppBar. Attribute onDateChange is a function, which defines what happens when the user selects a date. firstDate attribute defines the first date, which will be available for selection. The date saved in lastDate attribute is the last date available for selection. At first initialization of the object, the date provided as lastDate will be selected, but will not be returned with onDateChange function.

More Custom Usage

Hide Full Screen Calendar View

This package enables the usage of a full-screen calendar view. It is displayed when the user presses on month and year text in the top right corner of the AppBar. It comes in two different versions. If the first and last date are part of the same month the full-screen calendar will be displayed as seen on the third image at the top of this file. In the other way, it will be displayed as seen in the second image. It is possible to disable the full-screen view (which is enabled by default) by adding the following code:

    fullCalendar: false,

Define Your Custom Color Scheme

You can define your custom color scheme by defining white, black and accent color. Those three colors are set to Colors.white, Colors.black87 and Color(0xFF0039D9) by default. It is possible to customize those three colors as shown below.

    white: Colors.white,
    black: Colors.black,
    accent: Colors.blue,

The design is currently optimized for light mode and therefore also suggested to be used in that way to achieve better UX. Dark mode will be added soon.

Custom Padding

The horizontal padding can be customized (default it is set to 25px) by adding the following code:

    padding: 10.0,

Mark Dates with Events

It is possible to provide the list of dates of type List<DateTime>, which will be marked on calendar view with a dot.

    events: List.generate(
            10, (index) => DateTime.now().subtract(Duration(days: index * 2))),

The code above will generate the list of 10 dates for every second day from today backwards.

Back Button

The last attribute of CalendarAppbar is backButton, which is default set to true. Customize that feature by setting this attribute to false.

    backButton: false,

Internationalization

The newest feature the CalendarAppbar package is offering is local support for different languages. Use atribute locale to customize the language used for the plugin by adding the language code as shown below. If this atribute is not set, English language will be used.

    locale: 'en',

Thank you

Special thanks goes to all contributors to this package. Make sure to check them out.

Make sure to check out example project. If you find this package useful, star my GitHub repository.

Getting Started with Flutter

For help getting started with Flutter, view Flutter official documentation online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

calendar_appbar's People

Contributors

vpalcar avatar srini-b avatar sud0su avatar szymanski-konrad avatar gulertolga avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.