All Projects → Skyost → Flutterweekview

Skyost / Flutterweekview

Licence: mit
Displays a highly customizable week view (or day view) which is able to display events, to be scrolled, to be zoomed-in & out and a lot more !

Programming Languages

dart
5743 projects

Projects that are alternatives of or similar to Flutterweekview

Timetable
📅 Customizable flutter calendar widget including day and week views
Stars: ✭ 140 (+7.69%)
Mutual labels:  package, calendar, calendar-view
Table calendar
Highly customizable, feature-packed Flutter Calendar with gestures, animations and multiple formats
Stars: ✭ 897 (+590%)
Mutual labels:  calendar, widget, calendar-view
Calendarview
Android 平台上继承 View 实现的自定义日历控件
Stars: ✭ 129 (-0.77%)
Mutual labels:  view, calendar
Yycalendar
Simple and Clear Calendar
Stars: ✭ 46 (-64.62%)
Mutual labels:  calendar, calendar-view
Calendarview
Calendar View Library
Stars: ✭ 71 (-45.38%)
Mutual labels:  view, calendar
Iconswitch
🍭 Custom Android Switch widget
Stars: ✭ 874 (+572.31%)
Mutual labels:  view, widget
Peppy Calendarview
Simple and fast Material Design calendar view for Android.
Stars: ✭ 30 (-76.92%)
Mutual labels:  calendar, calendar-view
Fancyaccordionview
An Android fancy accordion view
Stars: ✭ 64 (-50.77%)
Mutual labels:  view, widget
Calendarview
An Easy to Use Calendar for iOS (Swift 5.0)
Stars: ✭ 429 (+230%)
Mutual labels:  calendar, calendar-view
Recyclercalendarandroid
A simple DIY library to generate your own custom Calendar View using RecyclerView, written in Kotlin
Stars: ✭ 83 (-36.15%)
Mutual labels:  calendar, calendar-view
Kotlin Agendacalendarview
Android calendar library provides easy to use widget with events
Stars: ✭ 81 (-37.69%)
Mutual labels:  calendar, calendar-view
Swift Week View
An iOS calendar library for displaying calendar events in a week view.
Stars: ✭ 88 (-32.31%)
Mutual labels:  calendar, calendar-view
Mbcalendarkit
An open source calendar framework for iOS, with support for customization, IBDesignable, Autolayout, and more.
Stars: ✭ 561 (+331.54%)
Mutual labels:  calendar, calendar-view
Calendarview
Android上一个优雅、万能自定义UI、仿iOS、支持垂直、水平方向切换、支持周视图、自定义周起始、性能高效的日历控件,支持热插拔实现的UI定制!支持标记、自定义颜色、农历、自定义月视图各种显示模式等。Canvas绘制,速度快、占用内存低,你真的想不到日历居然还可以如此优雅!An elegant, highly customized and high-performance Calendar Widget on Android.
Stars: ✭ 7,998 (+6052.31%)
Mutual labels:  calendar, calendar-view
Crunchycalendar
A beautiful material calendar with endless scroll, range selection and a lot more!
Stars: ✭ 465 (+257.69%)
Mutual labels:  calendar, calendar-view
Toothyprogress
A polyline determinated ProgressBar written in Kotlin
Stars: ✭ 56 (-56.92%)
Mutual labels:  view, widget
Calendarview
日历 仪表盘 圆盘,提供全新RecyclerView日历,功能更加强大。
Stars: ✭ 125 (-3.85%)
Mutual labels:  view, calendar-view
Material Calendar View
📅 Material Design Calendar compatible with API 11+
Stars: ✭ 360 (+176.92%)
Mutual labels:  calendar, calendar-view
Styled widget
Simplifying widget style in Flutter.
Stars: ✭ 424 (+226.15%)
Mutual labels:  package, widget
Calendarview2
Calendar view for Android. Pretty.
Stars: ✭ 72 (-44.62%)
Mutual labels:  calendar, calendar-view

Flutter Week View

Likes Popularity Pub points

Displays a highly customizable week view (or day view) which is able to display events, to be scrolled, to be zoomed-in & out and a lot more !

Flutter Week View is highly inspired by Android Week View.

Getting Started

Getting started with Flutter Week View is very straight forward. You have the choice between two widgets : FlutterDayView and FlutterWeekView. Use the first one to display a single day and use the second one to display multiple days.

Example

If you want a real project example, you can check this one on Github.

Day View

Snippet :

// Let's get two dates :
DateTime now = DateTime.now();
DateTime date = DateTime(now.year, now.month, now.day);

// And here's our widget !
return DayView(
  date: now,
  events: [
    FlutterWeekViewEvent(
      title: 'An event 1',
      description: 'A description 1',
      start: date.subtract(Duration(hours: 1)),
      end: date.add(Duration(hours: 18, minutes: 30)),
    ),
    FlutterWeekViewEvent(
      title: 'An event 2',
      description: 'A description 2',
      start: date.add(Duration(hours: 19)),
      end: date.add(Duration(hours: 22)),
    ),
    FlutterWeekViewEvent(
      title: 'An event 3',
      description: 'A description 3',
      start: date.add(Duration(hours: 23, minutes: 30)),
      end: date.add(Duration(hours: 25, minutes: 30)),
    ),
    FlutterWeekViewEvent(
      title: 'An event 4',
      description: 'A description 4',
      start: date.add(Duration(hours: 20)),
      end: date.add(Duration(hours: 21)),
    ),
    FlutterWeekViewEvent(
      title: 'An event 5',
      description: 'A description 5',
      start: date.add(Duration(hours: 20)),
      end: date.add(Duration(hours: 21)),
    ),
  ],
  style: const DayViewStyle.fromDate(
    date: now,
    currentTimeCircleColor: Colors.pink,
  ),
);

Result :

Week view

Snippet :

// Let's get two dates :
DateTime now = DateTime.now();
DateTime date = DateTime(now.year, now.month, now.day);

// And here's our widget !
return WeekView(
  dates: [date.subtract(Duration(days: 1)), date, date.add(Duration(days: 1))],
  events: [
    FlutterWeekViewEvent(
      title: 'An event 1',
      description: 'A description 1',
      start: date.subtract(Duration(hours: 1)),
      end: date.add(Duration(hours: 18, minutes: 30)),
    ),
    FlutterWeekViewEvent(
      title: 'An event 2',
      description: 'A description 2',
      start: date.add(Duration(hours: 19)),
      end: date.add(Duration(hours: 22)),
    ),
    FlutterWeekViewEvent(
      title: 'An event 3',
      description: 'A description 3',
      start: date.add(Duration(hours: 23, minutes: 30)),
      end: date.add(Duration(hours: 25, minutes: 30)),
    ),
    FlutterWeekViewEvent(
      title: 'An event 4',
      description: 'A description 4',
      start: date.add(Duration(hours: 20)),
      end: date.add(Duration(hours: 21)),
    ),
    FlutterWeekViewEvent(
      title: 'An event 5',
      description: 'A description 5',
      start: date.add(Duration(hours: 20)),
      end: date.add(Duration(hours: 21)),
    ),
  ],
);

Result :

Options

Common options

Here are the options that are available for both FlutterDayView and FlutterWeekView :

  • events Events to display.
  • style Allows you to style your widget. A lot of different styles are available so don't hesitate to try them out !
  • hoursColumnStyle Same, it allows you to style the hours column on the left.
  • controller Controllers allow you to manually change the zoom settings.
  • inScrollableWidget Whether to put the widget in a scrollable widget (disable if you want to manage the scroll by yourself).
  • minimumTime The minimum hour and minute to display in a day.
  • maximumTime The maximum hour and minute to display in a day.
  • initialTime The initial hour and minute to put the widget on.
  • userZoomable Whether the user is able to (un)zoom the widget.
  • currentTimeIndicatorBuilder Allows you to change the default current time indicator (rule and circle).
  • onHoursColumnTappedDown Provides a tapped down callback for the hours column. Pretty useful if you want your users to add your own events at a specific time.
  • onDayBarTappedDown Provides a tapped down callback for the day bar.

Flutter day view

Here are the specific options of FlutterDayView :

  • date The widget date.
  • dayBarStyle The day bar style.

Flutter week view

Here are the specific options of FlutterWeekView :

  • dates The widget dates.
  • dayViewStyleBuilder The function that allows to build a Day View style according to the provided date.
  • dayBarStyleBuilder The function that allows to build a Day Bar style according to the provided date.

Please note that you can create a FlutterWeekView instance using a builder. All previous options are still available but you don't need to provide the dates list. However, you need to provide a DateCreator (and a date count if you can, if it's impossible for you to do it then scrollToCurrentTime will not scroll to the current date).

Contributions

You have a lot of options to contribute to this project ! You can :

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].