apptreesoftware / flutter_calendar Goto Github PK
View Code? Open in Web Editor NEWA calendar widget for Flutter.
License: BSD 2-Clause "Simplified" License
A calendar widget for Flutter.
License: BSD 2-Clause "Simplified" License
Going to the next or previous month is not updated correctly when the first day of the week is still in the previous month.
void nextMonth() { setState(() { today = Utils.nextMonth(today); final firstDateOfNewMonth = Utils.firstDayOfMonth(today); final lastDateOfNewMonth = Utils.lastDayOfMonth(today); updateSelectedRange(firstDateOfNewMonth, lastDateOfNewMonth); selectedMonthsDays = Utils.daysInMonth(today); displayMonth = Utils.formatMonth(Utils.firstDayOfWeek(today)); }); }
It is an easy fix, instead of getting the first day of the week, you just get the month of the current day. This should be in the correct month already.
void nextMonth() { setState(() { today = Utils.nextMonth(today); final firstDateOfNewMonth = Utils.firstDayOfMonth(today); final lastDateOfNewMonth = Utils.lastDayOfMonth(today); updateSelectedRange(firstDateOfNewMonth, lastDateOfNewMonth); selectedMonthsDays = Utils.daysInMonth(today); displayMonth = Utils.formatMonth(today); }); }
Does the calendar support languages other than english? Is the some "locale" method that i can place the user's location and the calendar would display the according language.
No animation applied for swipe left or right action.
Can you add it?
To reproduce:
Expand the calendar
Navigate with chevron to a month where the amount of rows is less than current month
Click date on last row
Deflate calendar (un-expand?)
Calendar is no longer expandable
I/flutter ( 2568): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter ( 2568): The following assertion was thrown during performLayout():
I/flutter ( 2568): SliverGeometry is not valid: The "maxPaintExtent" is less than the "paintExtent".
I/flutter ( 2568): The maxPaintExtent is 229.38775510204079, but the paintExtent is 229.3877551020408. Maybe you have
I/flutter ( 2568): fallen prey to floating point rounding errors, and should explicitly apply the min() or max()
I/flutter ( 2568): functions, or the clamp() method, to the paintExtent? By definition, a sliver can't paint more than
I/flutter ( 2568): the maximum that it can paint!
I/flutter ( 2568): The RenderSliver that returned the offending geometry was:
I/flutter ( 2568): RenderSliverGrid#3db89 relayoutBoundary=up32 NEEDS-LAYOUT
I/flutter ( 2568): creator: SliverGrid ← SliverPadding ← ShrinkWrappingViewport ← _ScrollableScope ←
I/flutter ( 2568): IgnorePointer-[GlobalKey#91a81] ← Semantics ← Listener ← _GestureSemantics ←
I/flutter ( 2568): RawGestureDetector-[LabeledGlobalKey#b422a] ←
I/flutter ( 2568): _ExcludableScrollSemantics-[GlobalKey#cd878] ← RepaintBoundary ← CustomPaint ← ⋯
I/flutter ( 2568): parentData: paintOffset=Offset(0.0, 0.0) (can use size)
I/flutter ( 2568): constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle,
I/flutter ( 2568): scrollOffset: 0.0, remainingPaintExtent: Infinity, crossAxisExtent: 401.4, crossAxisDirection:
I/flutter ( 2568): AxisDirection.right, viewportMainAxisExtent: Infinity)
I/flutter ( 2568): geometry: SliverGeometry(scrollExtent: 229.4, paintExtent: 229.4, maxPaintExtent: 229.4,
I/flutter ( 2568): hasVisualOverflow: true)
I/flutter ( 2568): currently live children: 0 to 41
I/flutter ( 2568):
I/flutter ( 2568): When the exception was thrown, this was the stack:
I/flutter ( 2568): #0 SliverGeometry.debugAssertIsValid..verify (package:flutter/src/rendering/sliver.dart:542)
I/flutter ( 2568): #1 SliverGeometry.debugAssertIsValid. (package:flutter/src/rendering/sliver.dart:559)
I/flutter ( 2568): #2 SliverGeometry.debugAssertIsValid (package:flutter/src/rendering/sliver.dart:571)
I/flutter ( 2568): #3 RenderSliver.debugAssertDoesMeetConstraints (package:flutter/src/rendering/sliver.dart:925)
I/flutter ( 2568): #4 RenderObject.layout. (package:flutter/src/rendering/object.dart:1572)
I/flutter ( 2568): #5 RenderObject.layout (package:flutter/src/rendering/object.dart:1572)
I/flutter ( 2568): #6 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:182)
I/flutter ( 2568): #7 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #8 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:285)
I/flutter ( 2568): #9 RenderShrinkWrappingViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1335)
I/flutter ( 2568): #10 RenderShrinkWrappingViewport.performLayout (package:flutter/src/rendering/viewport.dart:1298)
I/flutter ( 2568): #11 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #12 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #13 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #14 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #15 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #16 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #17 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #18 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #19 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #20 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #21 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #22 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #23 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #24 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #25 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #26 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #27 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #28 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #29 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #30 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #31 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #32 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #33 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #34 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #35 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #36 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:509)
I/flutter ( 2568): #37 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #38 RenderAnimatedSize.performLayout (package:flutter/src/rendering/animated_size.dart:172)
I/flutter ( 2568): #39 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #40 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #41 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1138)
I/flutter ( 2568): #42 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #43 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:798)
I/flutter ( 2568): #44 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #45 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #46 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #47 RenderSliverList.performLayout.advance (package:flutter/src/rendering/sliver_list.dart:200)
I/flutter ( 2568): #48 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:233)
I/flutter ( 2568): #49 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #50 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:182)
I/flutter ( 2568): #51 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #52 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:285)
I/flutter ( 2568): #53 RenderShrinkWrappingViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1335)
I/flutter ( 2568): #54 RenderShrinkWrappingViewport.performLayout (package:flutter/src/rendering/viewport.dart:1298)
I/flutter ( 2568): #55 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #56 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #57 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #58 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #59 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #60 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #61 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #62 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #63 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #64 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #65 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #66 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #67 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #68 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #69 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #70 RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107)
I/flutter ( 2568): #71 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #72 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:199)
I/flutter ( 2568): #73 RenderObject.layout (package:flutter/src/rendering/object.dart:1570)
I/flutter ( 2568): #74 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:124)
I/flutter ( 2568): #75 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:256)
I/flutter ( 2568): #76 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:194)
I/flutter ( 2568): #77 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:338)
I/flutter ( 2568): #78 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1445)
I/flutter ( 2568): #79 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:709)
I/flutter ( 2568): #80 BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:270)
I/flutter ( 2568): #81 BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:622)
I/flutter ( 2568): #82 BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208)
I/flutter ( 2568): #83 BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990)
I/flutter ( 2568): #84 BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930)
I/flutter ( 2568): #85 BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842)
I/flutter ( 2568): #86 _invoke (file:///b/build/slave/Linux_Engine/build/src/flutter/lib/ui/hooks.dart:120)
I/flutter ( 2568): #87 _drawFrame (file:///b/build/slave/Linux_Engine/build/src/flutter/lib/ui/hooks.dart:109)
I/flutter ( 2568):
I/flutter ( 2568): The following RenderObject was being processed when the exception was fired:
I/flutter ( 2568): RenderSliverGrid#3db89 relayoutBoundary=up32 NEEDS-LAYOUT
I/flutter ( 2568): creator: SliverGrid ← SliverPadding ← ShrinkWrappingViewport ← _ScrollableScope ←
I/flutter ( 2568): IgnorePointer-[GlobalKey#91a81] ← Semantics ← Listener ← _GestureSemantics ←
I/flutter ( 2568): RawGestureDetector-[LabeledGlobalKey#b422a] ←
I/flutter ( 2568): _ExcludableScrollSemantics-[GlobalKey#cd878] ← RepaintBoundary ← CustomPaint ← ⋯
I/flutter ( 2568): parentData: paintOffset=Offset(0.0, 0.0) (can use size)
I/flutter ( 2568): constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle,
I/flutter ( 2568): scrollOffset: 0.0, remainingPaintExtent: Infinity, crossAxisExtent: 401.4, crossAxisDirection:
I/flutter ( 2568): AxisDirection.right, viewportMainAxisExtent: Infinity)
I/flutter ( 2568): geometry: SliverGeometry(scrollExtent: 229.4, paintExtent: 229.4, maxPaintExtent: 229.4,
I/flutter ( 2568): hasVisualOverflow: true)
I/flutter ( 2568): currently live children: 0 to 41
I/flutter ( 2568): This RenderObject had the following descendants (showing up to depth 5):
I/flutter ( 2568): RenderRepaintBoundary#468c6
I/flutter ( 2568): RenderDecoratedBox#7ebb0
I/flutter ( 2568): RenderSemanticsGestureHandler#49306
I/flutter ( 2568): RenderPointerListener#44866
I/flutter ( 2568): RenderPositionedBox#4f1af
I/flutter ( 2568): RenderRepaintBoundary#db7bc
I/flutter ( 2568): RenderDecoratedBox#a7e93
I/flutter ( 2568): RenderSemanticsGestureHandler#2c181
I/flutter ( 2568): RenderPointerListener#ef637
I/flutter ( 2568): RenderPositionedBox#b1542
I/flutter ( 2568): RenderRepaintBoundary#189a9
I/flutter ( 2568): RenderDecoratedBox#505e8
I/flutter ( 2568): RenderSemanticsGestureHandler#1cb38
I/flutter ( 2568): RenderPointerListener#b1e1f
I/flutter ( 2568): RenderPositionedBox#d82bd
I/flutter ( 2568): RenderRepaintBoundary#6bbba
I/flutter ( 2568): RenderDecoratedBox#74e1a
I/flutter ( 2568): RenderSemanticsGestureHandler#f467d
I/flutter ( 2568): RenderPointerListener#45542
I/flutter ( 2568): RenderPositionedBox#518b7
I/flutter ( 2568): RenderRepaintBoundary#50317
I/flutter ( 2568): RenderDecoratedBox#798b5
I/flutter ( 2568): RenderSemanticsGestureHandler#e269e
I/flutter ( 2568): RenderPointerListener#93dc5
I/flutter ( 2568): RenderPositionedBox#70ef0
I/flutter ( 2568): ...(descendants list truncated after 25 lines)
I/flutter ( 2568): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter ( 2568): Another exception was thrown: SliverGeometry is not valid: The "maxPaintExtent" is less than the "paintExtent".
I/chatty ( 2568): uid=10080(innovation.showcaseapp) ui_thread identical 3 lines
I/flutter ( 2568): Another exception was thrown: SliverGeometry is not valid: The "maxPaintExtent" is less than the "paintExtent".
I/flutter ( 2568): Another exception was thrown: SliverGeometry is not valid: The "maxPaintExtent" is less than the "paintExtent".
I/chatty ( 2568): uid=10080(innovation.showcaseapp) ui_thread identical 24 lines
I/flutter ( 2568): Another exception was thrown: SliverGeometry is not valid: The "maxPaintExtent" is less than the "paintExtent".
I/flutter ( 2568): Another exception was thrown: SliverGeometry is not valid: The "maxPaintExtent" is less than the "paintExtent".
I/chatty ( 2568): uid=10080(innovation.showcaseapp) ui_thread identical 5 lines
I/flutter ( 2568): Another exception was thrown: SliverGeometry is not valid: The "maxPaintExtent" is less than the "paintExtent".
Hi, is there any plan to add a dependency to your date_utils and remove the existing code for date manipulation?
I spotted the DST bug you fixed in the date_utils has impacted this as well (when expanded and in BST (GMT/UTC+1) the day is off by 1.
I would like to disable dates before current date. Is there a property to disable onClick on dates which are before than current Date??
When you click on the calendar button it shows the calendar picker as it should but then if you click cancel the app crashes
"The getter year was called with null"
This is due to lines 314 & 315 referring to a date that is null in flutter_calendar.dart. Moving these inside the if statement will fix the issue
Do you need a PR or can you make the change?
Paul
This is more like a question, since I need to be able to display the first day of the week as a Monday instead of Sunday, and then the last day of the week will become Sunday. Is there a way to do this at the moment? Or does this need adjustments
I really like the look of the calendar.
For a pet project I would like to decorate the default dayBuilder.
This is quite hard, as the CalendarTiles need local information of the iterating over the calendar dates.
Good day,
When changing the range with the left / right buttons the datarange updates correctly, but, when you. are on a month and choose to expand the calendar, the onSelectedRangeChange is not being called. The range do however get updated with the correct values when you continue left / right in expanded state.
It would be great if the onSelectedRangeChange gets called when the calendar is expanded / minimized.
The calendar shows me two consecutive July months. Have you encountered this problem?
I've managed to change Weekdays name,
how can i put monday as first day?
and how can i replace Months name so that they are italians? switching to italian language doesn't work
So, because siyou depends on both easy_localization ^1.3.1 and flutter calendar ^0.0.8, version solving failed
Because every version of easy localization depends on flutter_localizations any from sdk which depends on intl 0.16.0, every version of easy localization requires intl 0.16.0. So, because siyou depends on both intl ^0.15.8 and easy_localization ^1.3.1, version solving failed.
Anyone had a need for this yet?
Hey great work there! I have a note to make:
If you provide a dayBuilder then the standard functionality inside function handleSelectedDateAndUserCallback is overriden and this is not a good thing because it handles crucial data for the widget. I resolved it by providing an Inkwell as dayBuilder that triggers function handleSelectedDateAndUserCallback.
But before this I had to
That's it, now the selectedWeeksDays of the calendar get updated and when it is not expanded the selected week stays in focus!
You have one issue with the april 2019. The month starts at Monday but your Widget shows it as Tuesday (image attached).
I investigated the code and found that Utils.daysInMonth returns one more day (it is the bug in their code because the method is not aware of TimeZone). You expect that daysInMonth should return list with Sunday as the first element but this method returned Saturday as the first day in the array.
Hello,
Is it normal that when swiping the selected date indicator even if the user doesn't tap on a specific date ?
How to prevent this behavior ? I would like to highlight the user's selection only.
Indeed, if the user swipe, he might think that he lost his selected date or that I changed his selection.
Moreover, if the user swipe and see that the indicator (highlighted day) change, he won't feel necessary (or weird) to select the day he thinks has been selected when swiping. Users will definitively think it's a bug.
I hope I explain myself well, english isn't my native language.
If you need further explanation, I'll be glad to provide them.
Thanks
The month label describing the visible month days does not get updated correctly when switching between months.
From @debutdeveloper on August 23, 2018 9:23
URL: https://pub.dartlang.org/packages/flutter_calendar
This plugin is good for showing calendar in our apps but there are some issues occurred in expanded mode as it is working properly in week mode/ collapsed.
In expanded mode, some months are skipped by this calendar and repeat the very next month.
So this is not very much stable.
Please provide us some solution!!
Copied from original issue: dart-lang/pub-dev#1549
Not a bug, but it would be great if the library included more useful methods such as onWeekChange and onMonthChange.
I cannot make the get as it looks like date utils is incompatible, can you please fix?
My pubspec:
environment:
sdk: ">=2.0.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.0
date_utils: ^0.1.0
tuple: ^1.0.1
flutter_calendar: "^0.0.4"
Hello, nice widget.
But it lacks a bit of customisable options.
It would be awesome to be able to specify the expended state with something like isExpanded.
Benefits :
Another functionnality would be to allow us to use a boolean to decide whether we want to display the date in expendable mode.
A third possibility would be to be able to animate calendar when swiping. But less important, that's just for better UX.
Sadly, I just started Flutter so I'm not good enough (at the moment) to implement the features I mentioned and send a pull request. So I rely on someone's will to see those improvments.
Thanks for your attention. I wish everyone a good day !
For tablets the ability to show a bigger cal would be good.
Also different views:
Olá, equipe de desenvolvedores, eu fiz uma adaptação no arquivo calendar_tile.dart e como não sou dev estou postando para que possam ver e checar se gostam
Widget renderDateOrDayOfWeek(BuildContext context) {
if (isDayOfWeek) {
return new InkWell(
child: new Container(
alignment: Alignment.center,
child: new Text(
dayOfWeek,
style: dayOfWeekStyles,
),
),
);
} else {
return new InkWell(
onTap: onDateSelected,
child: new Container(
decoration: isSelected
? new BoxDecoration(
shape: BoxShape.circle,
color: const Color.fromRGBO(204, 204, 204, 0.3),
)
: new BoxDecoration(),
alignment: Alignment.center,
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Text(
Utils.formatDay(date).toString(),
style: new TextStyle(
fontSize: 12.0, fontWeight: FontWeight.w400),
),
Utils.fullDayFormat(date).toString() == Utils.fullDayFormat(DateTime.now()).toString()
? new Container(
padding: new EdgeInsets.only(top: 3.0),
width: 3.0,
height: 3.0,
decoration: new BoxDecoration(
shape: BoxShape.circle,
color: const Color.fromRGBO(247, 64, 106,1.0), // cor da marcacao do dia de hoje
),
)
: new Container()
],
),
),
);
}
}
How to fix this issue.
flutter_calendar >=0.0.3 depends on date_utils <0.1.0 which requires SDK version >=1.20.1 <2.0.0, flutter_calendar >=0.0.3 is forbidden.
So, because flutter_calendar <0.0.3 requires SDK version >=1.8.0 <2.0.0 and word_memorize depends on flutter_calendar any, version solving failed.
pub finished with exit code 1
When press today button on expanded calendar, does not move to current month.
Please add the following to resetToToday().
selectedMonthsDays = Utils.daysInMonth(_selectedDate);
Originally posted by @santiagosantucho in #36 (comment)
Hello,
I've found a bug : when I swipe on the Calendar and tap on the expand icon,
the highlighted day is lost.
If your calendar is not expanded, you need to swipe until the month changes otherwise you won't see the bug.
Thanks
Hi, I'm using the master channel on flutter (SDK 2.1), and when I run flutter packages get
I receive the following error:
Because flutter_calendar 0.0.4 depends on date_utils any which requires SDK version >=1.20.1 <2.0.0, flutter_calendar 0.0.4 is forbidden.
I've forked your projects (date_utils and flutter_calendar), changed the sdk requirement from <2.0.0
to <3.0.0
and apparently it still works good. I'm just not sure if I've made all necessary tests, do perhaps you could run the tests and update the package?
Thanks.
It's possible to start the week at monday ?
In european's country, our calendar start on Monday and not on Sunday.
How to start expanded?
I want to use isExpandable: false, and start with the calendar expanded, I can easily change line 44 from flutter_calendar from
bool isExpanded = false;
to
bool isExpanded = true;
But it will work until next update...
Any idea?
Can I add an constructor and commit it too?
Thanks
Should be nice to be able to customise:
I am not able to run the example application because it has errors. Is this an issue that others have?
On IOs everything works perfectly, on android it has some problems, it doesn't let me expand the calendar, i have to swipe three or four times and it works. Any fix?
Launching lib/main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Running 'gradlew assembleDebug'...
Built build/app/outputs/apk/debug/app-debug.apk (30.6MB).
Installing build/app/outputs/apk/app.apk...
I/FlutterActivityDelegate( 5758): onResume setting current activity to this
Syncing files to device Android SDK built for x86...
D/ ( 5758): HostConnection::get() New Host Connection established 0x88a2d180, tid 5797
D/EGL_emulation( 5758): eglMakeCurrent: 0xa2650380: ver 3 0 (tinfo 0x8ddc8460)
I/flutter ( 5758): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter ( 5758): The following assertion was thrown during performLayout():
I/flutter ( 5758): SliverGeometry is not valid: The "maxPaintExtent" is less than the "paintExtent".
I/flutter ( 5758): The maxPaintExtent is 229.38775510204079, but the paintExtent is 229.3877551020408. Maybe you have
I/flutter ( 5758): fallen prey to floating point rounding errors, and should explicitly apply the min() or max()
I/flutter ( 5758): functions, or the clamp() method, to the paintExtent? By definition, a sliver can't paint more than
I/flutter ( 5758): the maximum that it can paint!
I/flutter ( 5758): The RenderSliver that returned the offending geometry was:
I/flutter ( 5758): RenderSliverGrid#9f188 relayoutBoundary=up32 NEEDS-LAYOUT NEEDS-PAINT
I/flutter ( 5758): creator: SliverGrid ← SliverPadding ← ShrinkWrappingViewport ← _ScrollableScope ←
I/flutter ( 5758): IgnorePointer-[GlobalKey#57fcf] ← Semantics ← Listener ← _GestureSemantics ←
I/flutter ( 5758): RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#52ee1] ←
I/flutter ( 5758): _ExcludableScrollSemantics-[GlobalKey#04cfd] ← RepaintBoundary ← CustomPaint ← ⋯
I/flutter ( 5758): parentData: paintOffset=Offset(0.0, 0.0) (can use size)
I/flutter ( 5758): constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle,
I/flutter ( 5758): scrollOffset: 0.0, remainingPaintExtent: Infinity, crossAxisExtent: 401.4, crossAxisDirection:
I/flutter ( 5758): AxisDirection.right, viewportMainAxisExtent: Infinity)
I/flutter ( 5758): geometry: SliverGeometry(scrollExtent: 229.4, paintExtent: 229.4, maxPaintExtent: 229.4,
I/flutter ( 5758): hasVisualOverflow: true)
I/flutter ( 5758): currently live children: 0 to 41
I/flutter ( 5758):
I/flutter ( 5758): When the exception was thrown, this was the stack:
I/flutter ( 5758): #0 SliverGeometry.debugAssertIsValid.<anonymous closure>.verify (package:flutter/src/rendering/sliver.dart:601:9)
I/flutter ( 5758): #1 SliverGeometry.debugAssertIsValid.<anonymous closure> (package:flutter/src/rendering/sliver.dart:618:15)
I/flutter ( 5758): #2 SliverGeometry.debugAssertIsValid (package:flutter/src/rendering/sliver.dart:630:6)
I/flutter ( 5758): #3 RenderSliver.debugAssertDoesMeetConstraints (package:flutter/src/rendering/sliver.dart:984:21)
I/flutter ( 5758): #4 RenderObject.layout.<anonymous closure> (package:flutter/src/rendering/object.dart:1572:19)
I/flutter ( 5758): #5 RenderObject.layout (package:flutter/src/rendering/object.dart:1572:67)
I/flutter ( 5758): #6 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:182:11)
I/flutter ( 5758): #7 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #8 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:285:13)
I/flutter ( 5758): #9 RenderShrinkWrappingViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1335:12)
I/flutter ( 5758): #10 RenderShrinkWrappingViewport.performLayout (package:flutter/src/rendering/viewport.dart:1298:20)
I/flutter ( 5758): #11 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #12 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #13 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #14 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #15 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #16 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #17 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #18 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #19 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #20 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #21 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #22 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #23 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #24 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #25 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #26 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #27 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #28 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #29 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #30 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #31 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #32 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #33 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #34 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #35 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #36 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:514:15)
I/flutter ( 5758): #37 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #38 RenderAnimatedSize.performLayout (package:flutter/src/rendering/animated_size.dart:172:11)
I/flutter ( 5758): #39 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #40 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #41 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1141:11)
I/flutter ( 5758): #42 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #43 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:798:17)
I/flutter ( 5758): #44 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #45 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #46 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #47 RenderSliverList.performLayout.advance (package:flutter/src/rendering/sliver_list.dart:200:17)
I/flutter ( 5758): #48 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:233:19)
I/flutter ( 5758): #49 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #50 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:182:11)
I/flutter ( 5758): #51 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #52 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:285:13)
I/flutter ( 5758): #53 RenderShrinkWrappingViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1335:12)
I/flutter ( 5758): #54 RenderShrinkWrappingViewport.performLayout (package:flutter/src/rendering/viewport.dart:1298:20)
I/flutter ( 5758): #55 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #56 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #57 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #58 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #59 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #60 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #61 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #62 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #63 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #64 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #65 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #66 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #67 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #68 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #69 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #70 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:107:13)
I/flutter ( 5758): #71 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #72 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:199:11)
I/flutter ( 5758): #73 RenderObject.layout (package:flutter/src/rendering/object.dart:1570:7)
I/flutter ( 5758): #74 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:141:11)
I/flutter ( 5758): #75 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:399:7)
I/flutter ( 5758): #76 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:211:7)
I/flutter ( 5758): #77 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:355:14)
I/flutter ( 5758): #78 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1445:7)
I/flutter ( 5758): #79 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:709:18)
I/flutter ( 5758): #80 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:270:19)
I/flutter ( 5758): #81 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:627:13)
I/flutter ( 5758): #82 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208:5)
I/flutter ( 5758): #83 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
I/flutter ( 5758): #84 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
I/flutter ( 5758): #85 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5)
I/flutter ( 5758): #86 _invoke (dart:ui/hooks.dart:120:13)
I/flutter ( 5758): #87 _drawFrame (dart:ui/hooks.dart:109:3)
I/flutter ( 5758):
I/flutter ( 5758): The following RenderObject was being processed when the exception was fired:
I/flutter ( 5758): RenderSliverGrid#9f188 relayoutBoundary=up32 NEEDS-LAYOUT NEEDS-PAINT
I/flutter ( 5758): creator: SliverGrid ← SliverPadding ← ShrinkWrappingViewport ← _ScrollableScope ←
I/flutter ( 5758): IgnorePointer-[GlobalKey#57fcf] ← Semantics ← Listener ← _GestureSemantics ←
I/flutter ( 5758): RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#52ee1] ←
I/flutter ( 5758): _ExcludableScrollSemantics-[GlobalKey#04cfd] ← RepaintBoundary ← CustomPaint ← ⋯
I/flutter ( 5758): parentData: paintOffset=Offset(0.0, 0.0) (can use size)
I/flutter ( 5758): constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle,
I/flutter ( 5758): scrollOffset: 0.0, remainingPaintExtent: Infinity, crossAxisExtent: 401.4, crossAxisDirection:
I/flutter ( 5758): AxisDirection.right, viewportMainAxisExtent: Infinity)
I/flutter ( 5758): geometry: SliverGeometry(scrollExtent: 229.4, paintExtent: 229.4, maxPaintExtent: 229.4,
I/flutter ( 5758): hasVisualOverflow: true)
I/flutter ( 5758): currently live children: 0 to 41
I/flutter ( 5758): This RenderObject had the following descendants (showing up to depth 5):
I/flutter ( 5758): RenderRepaintBoundary#bc741 NEEDS-PAINT
I/flutter ( 5758): RenderDecoratedBox#ce32f NEEDS-PAINT
I/flutter ( 5758): RenderSemanticsGestureHandler#6bfbe NEEDS-PAINT
I/flutter ( 5758): RenderPointerListener#341d2 NEEDS-PAINT
I/flutter ( 5758): RenderPositionedBox#0e59d NEEDS-PAINT
I/flutter ( 5758): RenderRepaintBoundary#61d1a NEEDS-PAINT
I/flutter ( 5758): RenderDecoratedBox#338b1 NEEDS-PAINT
I/flutter ( 5758): RenderSemanticsGestureHandler#b44b3 NEEDS-PAINT
I/flutter ( 5758): RenderPointerListener#e8289 NEEDS-PAINT
I/flutter ( 5758): RenderPositionedBox#0ddc7 NEEDS-PAINT
I/flutter ( 5758): RenderRepaintBoundary#c94c3 NEEDS-PAINT
I/flutter ( 5758): RenderDecoratedBox#54e57 NEEDS-PAINT
I/flutter ( 5758): RenderSemanticsGestureHandler#4a57f NEEDS-PAINT
I/flutter ( 5758): RenderPointerListener#e974b NEEDS-PAINT
I/flutter ( 5758): RenderPositionedBox#d7082 NEEDS-PAINT
I/flutter ( 5758): RenderRepaintBoundary#64806 NEEDS-PAINT
I/flutter ( 5758): RenderDecoratedBox#db9d7 NEEDS-PAINT
I/flutter ( 5758): RenderSemanticsGestureHandler#bbf8f NEEDS-PAINT
I/flutter ( 5758): RenderPointerListener#c7758 NEEDS-PAINT
I/flutter ( 5758): RenderPositionedBox#a6a23 NEEDS-PAINT
I/flutter ( 5758): RenderRepaintBoundary#85586 NEEDS-PAINT
I/flutter ( 5758): RenderDecoratedBox#c9b6b NEEDS-PAINT
I/flutter ( 5758): RenderSemanticsGestureHandler#e4049 NEEDS-PAINT
I/flutter ( 5758): RenderPointerListener#d658b NEEDS-PAINT
I/flutter ( 5758): RenderPositionedBox#146a4 NEEDS-PAINT
I/flutter ( 5758): ...(descendants list truncated after 25 lines)
I/flutter ( 5758): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter ( 5758): Another exception was thrown: SliverGeometry is not valid: The "maxPaintExtent" is less than the "paintExtent".
I/chatty ( 5758): uid=10084(com.yourcompany.stateful) 1.ui identical 11 lines
I/flutter ( 5758): Another exception was thrown: SliverGeometry is not valid: The "maxPaintExtent" is less than the "paintExtent".
I/zygote ( 5758): Do partial code cache collection, code=30KB, data=24KB
I/zygote ( 5758): After code cache collection, code=30KB, data=24KB
I/zygote ( 5758): Increasing code cache capacity to 128KB
I/flutter ( 5758): Another exception was thrown: SliverGeometry is not valid: The "maxPaintExtent" is less than the "paintExtent".
I/chatty ( 5758): uid=10084(com.yourcompany.stateful) 1.ui identical 11 lines
I/flutter ( 5758): Another exception was thrown: SliverGeometry is not valid: The "maxPaintExtent" is less than the "paintExtent".
How can I use locale?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.