Giter Site home page Giter Site logo

aleksanderwozniak / table_calendar Goto Github PK

View Code? Open in Web Editor NEW
1.7K 27.0 946.0 2.67 MB

Highly customizable, feature-packed calendar widget for Flutter

License: Apache License 2.0

Objective-C 0.02% Dart 97.73% Kotlin 0.06% Swift 0.20% HTML 1.98%
flutter calendar calendar-view flutter-plugin flutter-package table date table-calendar widget

table_calendar's People

Contributors

aleksanderwozniak avatar arijit121 avatar boehrsi avatar finefindus avatar fstof avatar fuganti avatar honoratoamg avatar kdy1 avatar kingkangyu avatar lohanidamodar avatar masseelch avatar maxgmer avatar michaelsoliman1 avatar monmonja avatar nerder avatar oli06 avatar pauldemarco avatar porum avatar ricardogobbo avatar shamilovtim avatar soraef avatar tombursch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

table_calendar's Issues

Is there a method to change the markersColor based on the event

Hello,
I have some distinct event that I need the marker color to be unique. Is there a way to do this in the calendar..

example
_selectedDay: ['Available', 'busy','away'],

_selectedDay.add(Duration(days: 1)): [
'Available''
],
and I want the marker to have different color e.g "available" - green , "busy"=red etc

Thanks

Custom builder causes RenderFlex overflowed on smaller sized device

Hi, I am not sure if I should consider dealing with smaller sized device or not. Today, I am testing a device which has a resolution of 470x960. The plugin works fine on modern devices. But when I test on this particular smaller resolution device, I got the following screenshot:

flutter_02

I have removed the extra texts on other builders and just keep it on todayDayBuilder just to make the screenshot clear.

The code is basically:

        todayDayBuilder: (context, date, _) {
          return Container(
            decoration: BoxDecoration(
              shape: BoxShape.circle,
              color: _color,
            ),
            margin: const EdgeInsets.all(6.0),
            alignment: Alignment.center,
            child: Column(
              children: <Widget>[
                Text(
                  '${date.day}',
                  style: _textstyle
                ),
                Text(
                  _getLunarDayCN(date),
                  style: _textstyle2
                )
              ],
            )
          );
        },

I checked #38 issue. I don't think I can use any of the two solutions. Should I just drop the support of this particular resolution 470x960?

Thanks a lot.

selectedDate "resets" once scrolling down too much

Hi,
Not too sure what's going on but the calendar seems to reset itself if I scroll down too far.
I use the calendar to update data in a futurebuilder.

@override
  Widget build(BuildContext context) {
    return WillPopScope(
    onWillPop: () async => false,
    child: Scaffold(
      appBar: AppBar(
        title: Text(Applocalisations.of(context).navigationBooking),
      ),
        body: Container(
            margin: EdgeInsets.symmetric(vertical: 13, horizontal: 20),
            child: ListView(
              children: <Widget>[
                warningStatus(),
                Container(
                  margin: EdgeInsets.symmetric(vertical: 20),
                  child: new TableCalendar(
                    availableCalendarFormats: {
                      CalendarFormat.month: Applocalisations.of(context).calendarMonth,
                      CalendarFormat.twoWeeks: Applocalisations.of(context).calendarTwoWeeks,
                      CalendarFormat.week: Applocalisations.of(context).calendarWeek
                    },
                    initialCalendarFormat: CalendarFormat.week,
                    formatAnimation: FormatAnimation.slide,
                    startingDayOfWeek: StartingDayOfWeek.sunday,
                    availableGestures: AvailableGestures.all,
                    calendarStyle: CalendarStyle(
                      outsideDaysVisible: false,
                      selectedColor: (Platform.isIOS || Platform.isMacOS)
                          ? CupertinoColors.activeBlue
                          : Colors.blueAccent[400],
                      todayColor: (Platform.isIOS || Platform.isMacOS)
                          ? Colors.blueAccent[100]
                          : Colors.blueAccent[100],
                      markersColor: Colors.brown[700],
                    ),
                    headerStyle: HeaderStyle(
                      formatButtonVisible: true,
                      formatButtonTextStyle: (Platform.isIOS ||
                              Platform.isMacOS)
                          ? TextStyle().copyWith(color: CupertinoColors.white)
                          : TextStyle()
                              .copyWith(color: Colors.white, fontSize: 15.0),
                      formatButtonDecoration: BoxDecoration(
                        color: (Platform.isIOS || Platform.isMacOS)
                            ? CupertinoColors.activeBlue
                            : Colors.blueAccent[400],
                        borderRadius: BorderRadius.circular(16.0),
                      ),
                    ),
                    onDaySelected: (selecteddate, events) =>
                        _onDaySelected(selecteddate),
                  ),
                ),
                LessonCards(
                  date: date,
                  name: widget.name,
                  selectedDate: selected,
                  formerDateTitle: widget.formerDateTitle,
                  formerDateSubtitle: widget.formerDateSubtitle,
                ),
              ],
              )
            )));
  }

I'm not too sure what can cause this; I've been told that a key would solve this yet I end up with the calendar not animating the selecteddate.
Any help would be appriciated,
Thanks.

bug

onVisibleDaysChanged : doesn't exist

Hello,
First, I like a lot your control.

I wanted to trigger a method when users swipe / change the displayed date.
I've taken a look to your exemple project, you use the onVisibleDaysChanged event for that purpose.

But Flutter tells me that The named parameter 'onVisibleDaysChanged' isn't defined.dart(undefined_named_parameter)

It is because on the Flutter widget page, the documentation tells to install 0.3.2 where the event did not exist yet.

May I suggest you to update it ? https://pub.dartlang.org/packages/flutter_calendar_carousel#-readme-tab-

It would be awesome because after a first reading, it doesn't seems obvious what your Widget can do. It's too bad because you did a great job.

Take care and thanks for the time you put into this Widget.

Another thing : it seems that on the version 1.0.0, the format doesn't change : it seems brocken : it was working on 0.3.2. The button does nothing and a vertical swipe trigger the animation but its animates to the same format.
It only refresh when you make a horizontal swipe gesture.

Feature request: Let todayColor override selectedColor, a new option?

First, thank you very much for this advanced calendar package. Best one I can find so far.

Now, my feature request is: Is that possible to provide an option to let todayColor override selectedColor? I think that is more native.

So far, I am using the following modified code:

  Decoration _buildCellDecoration() {
    if (isToday) {
      return BoxDecoration(
        shape: BoxShape.circle,
        color: calendarStyle.todayColor,
      );
    } else if (isSelected) {
      return BoxDecoration(
        shape: BoxShape.circle,
        color: calendarStyle.selectedColor,
      );
    } else {
      return BoxDecoration(shape: BoxShape.circle);
    }
  }

Thanks a lot.

custom styles

Can you expose the code that you use to generate the example calendar for custom styles.

Thanks

Events not appearing

When I use the Map literal from the example folder to populate the events the expected event icons are painted. However, when I build the TableCalendar from a StreamBuilder that is returning a Map<DateTime, List<String>> no markers are painted.

New feature : load events on view changed

Hi,

Do you plan to implement a feature that allow the developer to load the events only when the calendar is swiped to the left or right (visibleRangeChanged for an example of the signature) ? It will avoid to load a complete set of unnecessary data, but only load "on demand".

Thanks a lot !

Marker is limited

Great calendar! Thanks

Although I have had a problem with the length`s marker.
Even if there are more than 4 events on the day, the max number showed is 4.
I looked for, but I could not find out where it is configured.

Widget _buildTableCalendarWithBuilders() {
    return TableCalendar(
      locale: _locale,
      events: _visibleEvents,
      {...},
      builders: CalendarBuilders(
        {...},
        markersBuilder: (context, date, events, holidays) {
          final children = <Widget>[];
          
          if (events.isNotEmpty) {
            children.add(
              Positioned(
                bottom: 1,
                child: _buildEventsMarker(date, events),
              ),
            );
          }
          return children;
        },
      ),
      onDaySelected: (date, events) {
        _onDaySelected(date, events);
        _controller.forward(from: 0.0);
      },
      onVisibleDaysChanged: _onVisibleDaysChanged,
    );
  }

In this case, _visibleEvents is the group of events, but when it tries to print these events in --markersBuilder-- it prints just 4 items, but there are more events into the periods in _visibleEvents.

New feature : choose first day in the calendar

Hi,

First of all, thank you for this wonderful package !

I would like to define the first day displayed in the calendar (switching from "sunday" to "monday"). Do you plan to implement this feature in the future ?

Thank you

Add gestures

Any chance to detect the vertical slide to change between calendar formats?
So when pull down the calendar month is displayed

Feature request: Display current calendarFormat instead of _nextFormat(), a new option?

I feel the current behavior is kinda weird. It always displays the _nextFormat(). I modified the code for now. I am currently using

String get formatButtonText => _availableCalendarFormats[calendarFormat];

in class CalendarLogic.

Would you like to provide a new option? Otherwise, I will have to modify the underlying package code. Thanks a lot.

DayOfWeek Capitalization

I currently don't see a builder for these components, and would like to be able to force uppercase on the day of week header

forcedCalendarFormat is not working

Thanks for this awesome package. I want to update the calendarFormat using another button, but when updating the forcedCalendarFormat, the TableCalendar UI doesn't change.

Sample code:

import 'package:flutter/material.dart';
import 'package:table_calendar/table_calendar.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  CalendarFormat _calendarFormat = CalendarFormat.month;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Column(
        children: <Widget>[
          TableCalendar(
            forcedCalendarFormat: this._calendarFormat,
          ),
          Text(this._calendarFormat.toString())
        ],
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          setState(() {
            this._calendarFormat = (this._calendarFormat == CalendarFormat.month)
            ? CalendarFormat.twoWeeks
            : CalendarFormat.month;
          });
        },
        tooltip: 'Toggle',
        child: Icon(Icons.add),
      ),
    );
  }
}

Next/Prev Increments

The current 2-week view increments a single week at a time; however I feel that is odd behavior. Both the single week and single month views give you an entirely need set of dates to view; whereas, the "bottom" week becomes the "top" week in the 2-week view.

I feel like the increment/step behavior should match the current displayed duration. Thus it would move forward, or backwards, two weeks at a time.

Get event from json

I love this package so much cause it help me out through college tasks..

But, is there a way to get the events from json? so its not hard coded like the example.. Thanks..

 @override
  void initState() {
    super.initState();
    _selectedDay = DateTime.now();
    _events = {
      DateTime.parse("2019-03-31") : ['Event A6', 'Event B6'],
      DateTime.parse("2019-03-15") : ['Event A7', 'Event B6'],
      DateTime.parse("2019-03-02") : ['Event A6', 'Event B6'],
      DateTime.parse("2019-03-13") : ['Event A6', 'Event B6'],
    };
    _selectedEvents = _events[_selectedDay] ?? [];
    _visibleEvents = _events;

    _controller = AnimationController(
      vsync: this,
      duration: const Duration(milliseconds: 400),
    );

    _controller.forward();
  }

Format of days of week/header

Sorry, another question.

Is there a way to change the format of the days of the week? I need it to just be the letter and not the first three. Also, I don't need it, but it probably wouldn't be bad to give people a build or options to change the format of the header too.

Feature Request: Go Back to Today Callback

(As a discussion from another issue, file this new feature request for tracking.)
A callback function to let the calendar go back to today view and make today selected too.
Thank you very much.

Day calendarFormat

It would be so mush interesting for my app to have a day calendarFormat which plot only on day separated in different hour segments so that each statement is tappable. I would trigger it when the user tap to select one day an this particular view the user can select the hour for his appointment.

NoSuchMethodError: The method 'take' was called on null.

Hi @aleksanderwozniak ,

I tested your example code at https://github.com/aleksanderwozniak/table_calendar/blob/master/example/lib/main.dart and there is an exception thrown when you slide the calendar to the left (april 2019).

Here is the callstack :

I/flutter ( 4870): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter ( 4870): The following NoSuchMethodError was thrown building LayoutBuilder:
I/flutter ( 4870): The method 'take' was called on null.
I/flutter ( 4870): Receiver: null
I/flutter ( 4870): Tried calling: take(4)
I/flutter ( 4870): 
I/flutter ( 4870): When the exception was thrown, this was the stack:
I/flutter ( 4870): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:50:5)
I/flutter ( 4870): #1      _TableCalendarState._buildCell (package:table_calendar/table_calendar.dart:500:46)
I/flutter ( 4870): #2      _TableCalendarState._buildTableCell.<anonymous closure> (package:table_calendar/table_calendar.dart:480:20)
I/flutter ( 4870): #3      _LayoutBuilderElement._layout.<anonymous closure> (package:flutter/src/widgets/layout_builder.dart:113:26)
I/flutter ( 4870): #4      BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2294:19)
I/flutter ( 4870): #5      _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:109:11)
I/flutter ( 4870): #6      RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1716:58)
I/flutter ( 4870): #7      PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:797:15)
I/flutter ( 4870): #8      RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1716:13)
I/flutter ( 4870): #9      _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:207:5)
I/flutter ( 4870): #10     RenderObject.layout (package:flutter/src/rendering/object.dart:1620:7)
I/flutter ( 4870): #11     RenderTable.performLayout (package:flutter/src/rendering/table.dart:1060:21)
I/flutter ( 4870): #12     RenderObject.layout (package:flutter/src/rendering/object.dart:1620:7)
I/flutter ( 4870): #13     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 4870): #14     RenderObject.layout (package:flutter/src/rendering/object.dart:1620:7)
I/flutter ( 4870): #15     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 4870): #16     RenderObject.layout (package:flutter/src/rendering/object.dart:1620:7)
I/flutter ( 4870): #17     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 4870): #18     RenderObject.layout (package:flutter/src/rendering/object.dart:1620:7)
I/flutter ( 4870): #19     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 4870): #20     RenderObject.layout (package:flutter/src/rendering/object.dart:1620:7)
I/flutter ( 4870): #21     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 4870): #22     RenderObject.layout (package:flutter/src/rendering/object.dart:1620:7)
I/flutter ( 4870): #23     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 4870): #24     RenderObject.layout (package:flutter/src/rendering/object.dart:1620:7)
I/flutter ( 4870): #25     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:206:11)
I/flutter ( 4870): #26     RenderObject.layout (package:flutter/src/rendering/object.dart:1620:7)
I/flutter ( 4870): #27     RenderAnimatedSize.performLayout (package:flutter/src/rendering/animated_size.dart:182:11)
I/flutter ( 4870): #28     RenderObject.layout (package:flutter/src/rendering/object.dart:1620:7)
I/flutter ( 4870): #29     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:743:15)
I/flutter ( 4870): #30     RenderObject.layout (package:flutter/src/rendering/object.dart:1620:7)
I/flutter ( 4870): #31     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 4870): #32     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1214:11)
I/flutter ( 4870): #33     RenderObject.layout (package:flutter/src/rendering/object.dart:1620:7)
I/flutter ( 4870): #34     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:743:15)
I/flutter ( 4870): #35     RenderObject.layout (package:flutter/src/rendering/object.dart:1620:7)
I/flutter ( 4870): #36     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:142:11)
I/flutter ( 4870): #37     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:443:7)
I/flutter ( 4870): #38     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:212:7)
I/flutter ( 4870): #39     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:356:14)
I/flutter ( 4870): #40     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1497:7)
I/flutter ( 4870): #41     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:766:18)
I/flutter ( 4870): #42     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:346:19)
I/flutter ( 4870): #43     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:701:13)
I/flutter ( 4870): #44     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:285:5)
I/flutter ( 4870): #45     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1012:15)
I/flutter ( 4870): #46     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:952:9)
I/flutter ( 4870): #47     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:864:5)
I/flutter ( 4870): #51     _invoke (dart:ui/hooks.dart:220:10)
I/flutter ( 4870): #52     _drawFrame (dart:ui/hooks.dart:178:3)
I/flutter ( 4870): (elided 3 frames from package dart:async)

Best regards

Empty or null events list

A minor issue, but a null or empty events list (map) results in an exception. If I populate with 1 dummy event, the issue disappears.

How to customized the size of tableCell?

The default calendar is a little big to me. I need a tighter layout calendar. I return a SizedBox in dayBuilder but it didn't work. Is there anyway to change the size of cell and header?

New feature : dayBuilder to customize Day Widget

Hi,

Do you plan to implement a new feature that allow the developer to customize the widget displayed for days (like special bullet, different color depends on condition, etc.) ?

For example:

dayBuilder: (BuildContext context, DateTime day) { 
 return Text('Test'); 
}

Thanks a lot !

Ben

Allow user to give custom color for days of week.

Currently there is no provision for user to give custom color for days, it takes default value of gray which cannot be changed. Please add functionality to do so. Same can be said about weekend days. This is very important as not allowing user to change color can break their theme.

Holiday support

Great calendar!

However:

  • It would be nice with holiday support, by. e.g. an interface witch ppl can implement their own holiday rules.
  • Multiple markes that can also support multiple icons (eg. in the down-left corner)

Every monday

What do I have to do to add activity to all the Mondays in a year? I did some research but i think i missed something.

I am really newbie here and hard to read english for me :/

Test breaking with a A RenderFlex overflowed

I create a simple StatefulWidget with just a TableCalendar, but it throws an error "A RenderFlex overflowed by 65 pixels on the bottom" when I try write a test.
I've stripped it down to just a widget with just the calendar, and it still breaks.

import 'package:flutter/material.dart';
import 'package:table_calendar/table_calendar.dart';

class CalendarScreen extends StatefulWidget {
  @override
  CalendarScreenState createState() => CalendarScreenState();
}

class CalendarScreenState extends State<CalendarScreen> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('testCalendar'),
      ),
      body: Column(
          mainAxisSize: MainAxisSize.max,
          children: <Widget>[
            TableCalendar(locale: 'en_US'),
          ]
      ),
    );
  }
}

and the Test

import 'package:flutter_test/flutter_test.dart';

import 'package:test_calendar/screens/calendar_screen.dart';

void main() {
  testWidgets('Load calendar screen smoke test', (WidgetTester tester) async {
    // Build our app and trigger a frame.
    await tester.pumpWidget(CalendarScreen());
  });
}

Set Visible Month

Is there not a way to set the current visible month without setting "selectedDay"?

onVisibleDaysChanged show current month/year

Hi,

I'm not sure if there is available a way to retrieve the current month/year on the onVisibleDaysChanged when visible period changes (month, 2 weeks, week).
But if not, it would be nice to have it. I load the events of current year, so would be nice to have the possibility.

small dots and holidays

this study is very nice, great and good. thanks a lot very much.

How do I remove small dots that indicate the number of events below the date?

I do not see the days of holidays in the calendar defined at the beginning of the page?
I can see events but I can't see holidays

final Map<DateTime, List> _holidays = {
DateTime(2019, 1, 1): ['New Year's Day'],
DateTime(2019, 1, 6): ['Epiphany'],
DateTime(2019, 2, 14): ['Valentine's Day'],
DateTime(2019, 4, 21): ['Easter Sunday'],
DateTime(2019, 4, 22): ['Easter Monday'],
DateTime(2019, 6, 23): ['my birthday'],
};

Feature: Update DayOfWeek Style

It looks like DaysOfWeekStyle is the class that defines the style used for the day of the week at the top of the calendar; however, I couldn't trace a path back to an overridable user setting.

Firestore Integration

HI, I have your project imported in my app,I am using firestore to fetch events,But the issue iam facing is that,I Dont know how to persist the events into the selected events.can you provide any example??

New feature: Option to set selectedDate

Hi,

First of all thanks for making this package public, it really helps me and is currently the best in its category.

I would like suggest an improvement to its current great functionalities. I will be great to have an option to set the selectedDate programmatically. I see right now that you provided an initialDate in the constructor which will then set the _selectedDate once. This will then be updated only when onDaySelected is triggered which requires a user tapping a date in the calendar.

There are use cases in which the selectedDate needs to be updated programmatically and provide a UI feedback. For instance, I want to automatically set the first day of the month as selectedDate when page is changed. (see Google Calendar app)

With this, I'm thinking if initialDate can be renamed as selectedDate and use it for the purpose described above. Thanks!

November 2 issue

Hi,

First of all thanks for this great plugin. I am curious though, because I think there is a small bug on every november. On the first sunday, the day is the same of the saturday. Example: December 2019, Sunday should have day 3, but it shows 2 instead. On Monday, it corrects itself and shows day 4.

Could you check if this is really happening or is something on my part?

I attached a screenshot showing this behavior. What is really strange is that it happens on every november I think.

Screenshot_20190328-184642

Customize the Calendar Format Names

Ability to customize the Full/Compact/Minimal text.

Going to send a PR after this, but I'm new to flutter so I'll probably butcher it a bit.

Empty calendar rows

SettingstartingDayOfWeek: StartingDayOfWeek.sunday and outsideDaysVisible: false will result in an empty row in the calendar. Few examples of this are the months September and December 2019 as well as March 2020. I am using table_calendar version 1.0.2.

See screenshot from the example project.

flutter_table_calendar_102

Change chevron icons

Is there a way to change the chevron icons? I haven't seen a way to do it, but everything else is super customizable, so I wasn't sure if it was a hidden thing or something.

Awesome job on this btw!

How about adding headerBuilder

Fatastic project, fully customizable.
I think it would be better to be able to customize the header as well, though you can set headerVisible to false and added your own in the beginning.

Force Selected Day

Hi,

Thank you for this wonderful calendar package! I was wondering if there is a callback function I can use to update the selected day on the calendar widget. What I have is a button underneath the calendar, and would use that to update to the next selected day. The button right now does a setState to _selectedDay but doesn't fire off the onDaySelected function on TableCalendar. Maybe there is a way already, but couldn't figure out the solution.

Screen Shot 2019-06-17 at 9 43 09 AM

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.