Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expanded calendar UI issue #1

Closed
Aditya-B-Sharma opened this issue Apr 9, 2018 · 6 comments
Closed

Expanded calendar UI issue #1

Aditya-B-Sharma opened this issue Apr 9, 2018 · 6 comments
Labels
bug Something isn't working

Comments

@Aditya-B-Sharma
Copy link

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".

@Aditya-B-Sharma
Copy link
Author

Any update? bump

@ericwindmill
Copy link
Contributor

@PiranhA-di I can't reproduce this, so I'm guessing it was fixed by one of the other issues I've fixed.

@Aditya-B-Sharma
Copy link
Author

UI Expandability issue still exists, here is my layout

@OverRide
Widget build(BuildContext context) {
return new Theme(
data: new ThemeData(
accentColor: Colors.white,
brightness: Brightness.light,
buttonTheme: new ButtonThemeData(
height: 60.0,
minWidth: 225.0,
),
),
child: new Container(
child: new Card(
//padding: new EdgeInsets.fromLTRB(0.0, 20.0, 0.0, 0.0),
color: Colors.white,
child: new Calendar(
//onDateSelected: (date) => handleDate(date),
isExpandable: true,
)
)));
}

I'll try to give more specific reproduction instructions:

The date is currently 24th of April, the calendar is initially in collapse mode when the page loads up.
I click the down chevron to expand the calendar.
The calendar expands, all of April's dates are shown.
While the calendar is expanded, I click the next month or right chevron to navigate to the next month.
The month name does not update (it shows April when it should be May). (issue 1)
I collapse the calendar and it collapses successfully but still shows April and has the current date highlighted.
I can no longer expand the calendar properly. (issue 2)
When I try to expand it, the view stays the same (i.e shows the current week still) but upon "expansion" changes that to reflect the values that would be there when expanded, however it has not actually expanded.

@luigifaticoso
Copy link

Same problem only on android

@luigifaticoso
Copy link

Any chances to fix this? is it in program to fix this issue? @ericwindmill @PiranhA-di

@ericwindmill ericwindmill added bug Something isn't working and removed can't reproduce labels May 16, 2018
@ericwindmill ericwindmill reopened this May 16, 2018
rm3l added a commit to rm3l/flutter_calendar that referenced this issue May 23, 2018
This fixes a weird behavior where calendar could no
longer be expanded.
@rm3l
Copy link
Contributor

rm3l commented May 23, 2018

Hi there!
I had the same issue, but noticed that a related issue is still opened in Flutter repo: flutter/flutter#16125
FWIW, modifying the GridView childAspectRatio to 1.0 (instead of 1.5 ) appears to fix the issue for me.
I've submitted a PR #11 with this commit, but feel free to close it if this is not applicable in this case.

ericwindmill pushed a commit that referenced this issue Jun 27, 2018
Eternali pushed a commit to Eternali/flutter_calendar that referenced this issue Aug 27, 2018
…Month

fix for expanding month, as well as more consistent behavior on displayMonth
hyochan added a commit to dooboolab-community/flutter_calendar_carousel that referenced this issue Sep 10, 2018
ericwindmill pushed a commit that referenced this issue Mar 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants