fluttercommunity / flutter-draggable-scrollbar

Draggable Scrollbar - A scrollbar that can be dragged for quickly navigation through a vertical list. Additional option is showing label next to scrollthumb with information about current item. Maintainer: @marica27
https://pub.dev/packages/draggable_scrollbar
MIT License
442 stars 77 forks source link

Assertion when leaving Screen that is scrolled all the way down #17

Open SebastianRuettger opened 5 years ago

SebastianRuettger commented 5 years ago

I get the following assertion, when i leave a screen, that is scrolled all the way down:

I/flutter ( 3660): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter ( 3660): The following assertion was thrown during performLayout():
I/flutter ( 3660): Build scheduled during frame.
I/flutter ( 3660): While the widget tree was being built, laid out, and painted, a new frame was scheduled to rebuild
I/flutter ( 3660): the widget tree. This might be because setState() was called from a layout or paint callback. If a
I/flutter ( 3660): change is needed to the widget tree, it should be applied as the tree is being built. Scheduling a
I/flutter ( 3660): change for the subsequent frame instead results in an interface that lags behind by one frame. If
I/flutter ( 3660): this was done to make your build dependent on a size measured at layout time, consider using a
I/flutter ( 3660): LayoutBuilder, CustomSingleChildLayout, or CustomMultiChildLayout. If, on the other hand, the one
I/flutter ( 3660): frame delay is the desired effect, for example because this is an animation, consider scheduling the
I/flutter ( 3660): frame in a post-frame callback using SchedulerBinding.addPostFrameCallback or using an
I/flutter ( 3660): AnimationController to trigger the animation.
I/flutter ( 3660):
I/flutter ( 3660): When the exception was thrown, this was the stack:
I/flutter ( 3660): #0      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding._handleBuildScheduled.<anonymous closure> 
package:flutter/…/widgets/binding.dart:595
I/flutter ( 3660): #1      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding._handleBuildScheduled 
package:flutter/…/widgets/binding.dart:614
I/flutter ( 3660): #2      BuildOwner.scheduleBuildFor 
package:flutter/…/widgets/framework.dart:2224
I/flutter ( 3660): #3      Element.markNeedsBuild 
package:flutter/…/widgets/framework.dart:3689
I/flutter ( 3660): #4      State.setState 
package:flutter/…/widgets/framework.dart:1161
I/flutter ( 3660): #5      _DraggableScrollbarState.changePosition 
package:draggable_scrollbar/draggable_scrollbar.dart:422
I/flutter ( 3660): #6      _DraggableScrollbarState.build.<anonymous closure>.<anonymous closure> 
package:draggable_scrollbar/draggable_scrollbar.dart:382
I/flutter ( 3660): #7      NotificationListener._dispatch 
package:flutter/…/widgets/notification_listener.dart:127
I/flutter ( 3660): #8      Notification.visitAncestor 
package:flutter/…/widgets/notification_listener.dart:45
I/flutter ( 3660): #9      _ScrollNotification&LayoutChangedNotification&ViewportNotificationMixin.visitAncestor 
package:flutter/…/widgets/scroll_notification.dart:31
I/flutter ( 3660): #10     Element.visitAncestorElements 
package:flutter/…/widgets/framework.dart:3492
I/flutter ( 3660): #11     Notification.dispatch 
package:flutter/…/widgets/notification_listener.dart:61
I/flutter ( 3660): #12     ScrollActivity.dispatchScrollStartNotification 
package:flutter/…/widgets/scroll_activity.dart:91
I/flutter ( 3660): #13     ScrollPosition.didStartScroll 
package:flutter/…/widgets/scroll_position.dart:658
I/flutter ( 3660): #14     ScrollPosition.beginActivity 
package:flutter/…/widgets/scroll_position.dart:650
I/flutter ( 3660): #15     ScrollPositionWithSingleContext.beginActivity 
package:flutter/…/widgets/scroll_position_with_single_context.dart:116
I/flutter ( 3660): #16     ScrollPositionWithSingleContext.goBallistic 
package:flutter/…/widgets/scroll_position_with_single_context.dart:148
I/flutter ( 3660): #17     IdleScrollActivity.applyNewDimensions 
package:flutter/…/widgets/scroll_activity.dart:149
I/flutter ( 3660): #18     ScrollPosition.applyNewDimensions 
package:flutter/…/widgets/scroll_position.dart:490
I/flutter ( 3660): #19     ScrollPositionWithSingleContext.applyNewDimensions 
package:flutter/…/widgets/scroll_position_with_single_context.dart:106
I/flutter ( 3660): #20     ScrollPosition.applyContentDimensions 
package:flutter/…/widgets/scroll_position.dart:461
I/flutter ( 3660): #21     RenderViewport.performLayout 
package:flutter/…/rendering/viewport.dart:1256
I/flutter ( 3660): #22     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #23     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #24     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #25     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #26     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #27     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #28     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #29     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #30     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #31     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #32     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #33     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
I/flutter ( 3660): #34     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #35     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #36     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #37     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #38     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #39     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #40     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #41     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #42     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #43     RenderStack.performLayout 
package:flutter/…/rendering/stack.dart:510
I/flutter ( 3660): #44     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #45     _RenderLayoutBuilder.performLayout 
package:flutter/…/widgets/layout_builder.dart:209
I/flutter ( 3660): #46     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #47     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #48     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #49     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #50     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #51     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #52     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #53     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #54     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #55     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #56     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #57     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #58     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #59     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #60     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #61     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #62     RenderOffstage.performLayout 
package:flutter/…/rendering/proxy_box.dart:3076
I/flutter ( 3660): #63     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #64     RenderStack.performLayout 
package:flutter/…/rendering/stack.dart:510
I/flutter ( 3660): #65     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #66     __RenderTheatre&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #67     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #68     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #69     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #70     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #71     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #72     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #73     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #74     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #75     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #76     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout 
package:flutter/…/rendering/proxy_box.dart:105
I/flutter ( 3660): #77     _RenderCustomClip.performLayout 
package:flutter/…/rendering/proxy_box.dart:1214
I/flutter ( 3660): #78     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #79     RenderPadding.performLayout 
package:flutter/…/rendering/shifted_box.dart:206
I/flutter ( 3660): #80     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #81     RenderPadding.performLayout 
package:flutter/…/rendering/shifted_box.dart:206
I/flutter ( 3660): #82     RenderObject.layout 
package:flutter/…/rendering/object.dart:1619
I/flutter ( 3660): #83     RenderStack.performLayout 
I/flutter ( 3660): #84     RenderObject._layoutWithoutResize 
package:flutter/…/rendering/object.dart:1496
I/flutter ( 3660): #85     PipelineOwner.flushLayout 
package:flutter/…/rendering/object.dart:765
I/flutter ( 3660): #86     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame 
package:flutter/…/rendering/binding.dart:346
I/flutter ( 3660): #87     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame 
package:flutter/…/widgets/binding.dart:701
I/flutter ( 3660): #88     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback 
package:flutter/…/rendering/binding.dart:285
I/flutter ( 3660): #89     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback 
package:flutter/…/scheduler/binding.dart:1016
I/flutter ( 3660): #90     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame 
package:flutter/…/scheduler/binding.dart:958
I/flutter ( 3660): #91     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame 
package:flutter/…/scheduler/binding.dart:874
I/flutter ( 3660): #95     _invoke  (dart:ui/hooks.dart:236:10)
I/flutter ( 3660): #96     _drawFrame  (dart:ui/hooks.dart:194:3)
I/flutter ( 3660): (elided 3 frames from package dart:async)
I/flutter ( 3660):
I/flutter ( 3660): The following RenderObject was being processed when the exception was fired: RenderViewport#90e18 NEEDS-PAINT:
I/flutter ( 3660):   needs compositing
I/flutter ( 3660):   creator: Viewport ← IgnorePointer-[GlobalKey#299a1] ← Semantics ← Listener ← _GestureSemantics ←
I/flutter ( 3660):     RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#9b133] ← Listener ← _ScrollableScope
I/flutter ( 3660):     ← _ScrollSemantics-[GlobalKey#3527c] ← RepaintBoundary ← CustomPaint ← RepaintBoundary ← ⋯
I/flutter ( 3660):   parentData: <none> (can use size)
I/flutter ( 3660):   constraints: BoxConstraints(0.0<=w<=360.0, 0.0<=h<=558.1)
I/flutter ( 3660):   layer: OffsetLayer#1607a
I/flutter ( 3660):   size: Size(360.0, 558.1)
I/flutter ( 3660):   axisDirection: down
I/flutter ( 3660):   crossAxisDirection: right
I/flutter ( 3660):   offset: ScrollPositionWithSingleContext#5221d(offset: 6170.0, range: 0.0..6167.9, viewport: 558.1,
I/flutter ( 3660):     ScrollableState, BouncingScrollPhysics -> ClampingScrollPhysics,
I/flutter ( 3660):     BallisticScrollActivity#cbbdb(AnimationController#5a1d3(▶ 6170.000; for BallisticScrollActivity)),
I/flutter ( 3660):     ScrollDirection.idle)
I/flutter ( 3660):   anchor: 0.0
I/flutter ( 3660): This RenderObject had the following descendants (showing up to depth 5):
I/flutter ( 3660):     center child: RenderSliverPadding#644b7 relayoutBoundary=up1 NEEDS-PAINT
I/flutter ( 3660):       child: RenderSliverList#8f3a5 relayoutBoundary=up2 NEEDS-PAINT
I/flutter ( 3660):         child with index 119: RenderIndexedSemantics#27795 relayoutBoundary=up3 NEEDS-PAINT
I/flutter ( 3660):           child: RenderRepaintBoundary#33223 relayoutBoundary=up4 NEEDS-PAINT
I/flutter ( 3660):             child: RenderConstrainedBox#a0d18 relayoutBoundary=up5 NEEDS-PAINT
I/flutter ( 3660):         child with index 120: RenderIndexedSemantics#92ea5 relayoutBoundary=up3 NEEDS-PAINT
I/flutter ( 3660):           child: RenderRepaintBoundary#5b651 relayoutBoundary=up4 NEEDS-PAINT
I/flutter ( 3660):             child: RenderConstrainedBox#ca05b relayoutBoundary=up5 NEEDS-PAINT
I/flutter ( 3660):         child with index 121: RenderIndexedSemantics#e0434 relayoutBoundary=up3 NEEDS-PAINT
I/flutter ( 3660):           child: RenderRepaintBoundary#12dda relayoutBoundary=up4 NEEDS-PAINT
I/flutter ( 3660):             child: RenderConstrainedBox#66c7e relayoutBoundary=up5 NEEDS-PAINT
I/flutter ( 3660):         child with index 122: RenderIndexedSemantics#0e38d relayoutBoundary=up3
I/flutter ( 3660):           child: RenderRepaintBoundary#bebc9 relayoutBoundary=up4
I/flutter ( 3660):             child: RenderConstrainedBox#fbe56 relayoutBoundary=up5
I/flutter ( 3660):         child with index 123: RenderIndexedSemantics#fa5e6 relayoutBoundary=up3 NEEDS-PAINT
I/flutter ( 3660):           child: RenderRepaintBoundary#3079d relayoutBoundary=up4 NEEDS-PAINT
I/flutter ( 3660):             child: RenderConstrainedBox#79e45 relayoutBoundary=up5 NEEDS-PAINT
I/flutter ( 3660):         child with index 124: RenderIndexedSemantics#8215a relayoutBoundary=up3
I/flutter ( 3660):           child: RenderRepaintBoundary#ae72e relayoutBoundary=up4
I/flutter ( 3660):             child: RenderConstrainedBox#d88b6 relayoutBoundary=up5
I/flutter ( 3660):         child with index 125: RenderIndexedSemantics#d03ff relayoutBoundary=up3
I/flutter ( 3660):           child: RenderRepaintBoundary#758cf relayoutBoundary=up4
I/flutter ( 3660):             child: RenderConstrainedBox#4c4bb relayoutBoundary=up5
I/flutter ( 3660):         child with index 126: RenderIndexedSemantics#666a5 relayoutBoundary=up3
I/flutter ( 3660):           child: RenderRepaintBoundary#b2b57 relayoutBoundary=up4
I/flutter ( 3660):             child: RenderConstrainedBox#3fc84 relayoutBoundary=up5
I/flutter ( 3660):         child with index 127: RenderIndexedSemantics#21d77 relayoutBoundary=up3
I/flutter ( 3660):           child: RenderRepaintBoundary#1b834 relayoutBoundary=up4
I/flutter ( 3660):             child: RenderConstrainedBox#452ad relayoutBoundary=up5
I/flutter ( 3660): ════════════════════════════════════════════════════════════════════════════════════════════════════
volgin commented 4 years ago

Take a look at issue #8 .