8000 null safety版本,页面加载完成报错 The following assertion was thrown during performLayout() · Issue #476 · peng8350/flutter_pulltorefresh · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

null safety版本,页面加载完成报错 The following assertion was thrown during performLayout() #476

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

Open
wangruofeng opened this issue Apr 19, 2021 · 6 comments

Comments

@wangruofeng
Copy link

环境

➜ ~ flutter doctor -v
[✓] Flutter (Channel unknown, 2.0.1, on macOS 11.0.1 20B29 darwin-x64, locale
zh-Hans-CN)
• Flutter version 2.0.1 at /Users/klookuser/Documents/flutter
• Framework revision c5a4b4029c (7 weeks ago), 2021-03-04 09:47:48 -0800
• Engine revision 40441def69
• Dart version 2.12.0

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.1)
• Android SDK at /Users/klookuser/Library/Android/sdk
• Platform android-29, build-tools 29.0.1
• ANDROID_HOME = /Users/klookuser/Library/Android/sdk
• Java binary at: /Applications/Android
Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build
1.8.0_242-release-1644-b3-6222593)
• All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.4, Build version 12D4e
• CocoaPods version 1.10.1

[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build
1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.55.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.21.0

错误信息

main:stdout> flutter: ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
main:stdout> flutter: The following assertion was thrown during performLayout():
main:stdout> flutter: This widget has been unmounted, so the State no longer has a context (and should be considered
main:stdout> flutter: defunct).
main:stdout> flutter: Consider canceling any active work during "dispose" or using the "mounted" getter to determine if
main:stdout> flutter: the State is still active.
main:stdout> flutter:
main:stdout> flutter: The relevant error-causing widget was:
main:stdout> flutter: CustomScrollView
main:stdout> flutter: file:///Users/klookuser/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/pull_to_refresh-1.6.4/lib/src/smart_refresher.dart:425:14
main:stdout> flutter:
main:stdout> flutter: When the exception was thrown, this was the stack:
main:stdout> flutter: #0 State.context. (package:flutter/src/widgets/framework.dart:1088:9)
main:stdout> flutter: #1 State.context (package:flutter/src/widgets/framework.dart:1094:6)
main:stdout> flutter: #2 ScrollableState.storageContext (package:flutter/src/widgets/scrollable.dart:574:38)
main:stdout> flutter: #3 RefreshPhysics.createBallisticSimulation (package:pull_to_refresh/src/internals/refresh_physics.dart:266:52)
main:stdout> flutter: #4 ScrollPositionWithSingleContext.goBallistic (package:flutter/src/widgets/scroll_position_with_single_context.dart:144:44)
main:stdout> flutter: #5 IdleScrollActivity.applyNewDimensions (package:flutter/src/widgets/scroll_activity.dart:157:14)
main:stdout> flutter: #6 ScrollPosition.applyNewDimensions (package:flutter/src/widgets/scroll_position.dart:593:15)
main:stdout> flutter: #7 ScrollPositionWithSingleContext.applyNewDimensions (package:flutter/src/widgets/scroll_position_with_single_context.dart:104:11)
main:stdout> flutter: #8 ScrollPosition.applyContentDimensions (package:flutter/src/widgets/scroll_position.dart:533:7)
main:stdout> flutter: #9 RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1483:20)
main:stdout> flutter: #10 RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
main:stdout> flutter: #11 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
main:stdout> flutter: #12 RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
main:stdout> flutter: #13 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
main:stdout> flutter: #14 RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
main:stdout> flutter: #15 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
main:stdout> flutter: #16 RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
main:stdout> flutter: #17 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
main:stdout> flutter: #18 RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
main:stdout> flutter: #19 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
main:stdout> flutter: #20 RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
main:stdout> flutter: #21 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
main:stdout> flutter: #22 RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
main:stdout> flutter: #23 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:362:14)
main:stdout> flutter: #24 RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
main:stdout> flutter: #25 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:226:12)
main:stdout> flutter: #26 RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
main:stdout> flutter: #27 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:54:11)
main:stdout> flutter: #28 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:570:43)
main:stdout> flutter: #29 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:597:12)
main:stdout> flutter: #30 RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
main:stdout> flutter: #31 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
main:stdout> flutter: #32 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:925:7)
main:stdout> flutter: #33 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:243:7)
main:stdout> flutter: #34 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:407:14)
main:stdout> flutter: #35 RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
main:stdout> flutter: #36 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
main:stdout> flutter: #37 RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
main:stdout> flutter: #38 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
main:stdout> flutter: #39 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1371:11)
main:stdout> flutter: #40 RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
main:stdout> flutter: #41 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:54:11)
main:stdout> flutter: #42 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:570:43)
main:stdout> flutter: #43 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:597:12)
main:stdout> flutter: #44 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1641:7)
main:stdout> flutter: #45 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:884:18)
main:stdout> flutter: #46 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:453:19)
main:stdout> flutter: #47 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:874:13)
main:stdout> flutter: #48 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
main:stdout> flutter: #49 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
main:stdout> flutter: #50 SchedulerBinding.handleDrawFrame (package:flutter/ 8000 src/scheduler/binding.dart:1082:9)
main:stdout> flutter: #51 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:998:5)
main:stdout> flutter: #55 _invoke (dart:ui/hooks.dart:161:10)
main:stdout> flutter: #56 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:253:5)
main:stdout> flutter: #57 _drawFrame (dart:ui/hooks.dart:120:31)
main:stdout> flutter: (elided 3 frames from dart:async)
main:stdout> flutter:
main:stdout> flutter: The following RenderObject was being processed when the exception was fired: RenderViewport#04645 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE:
main:stdout> flutter: needs compositing
main:stdout> flutter: creator: Viewport ← IgnorePointer-[GlobalKey#d12be] ← Semantics ← Listener ← _GestureSemantics ←
main:stdout> flutter: RawGestureDetector-[LabeledGlobalKey#895cb] ← Listener ← _ScrollableScope
main:stdout> flutter: ← _ScrollSemantics-[GlobalKey#fe59d] ← Scrollable ← PrimaryScrollController ← CustomScrollView ← ⋯
main:stdout> flutter: parentData: (can use size)
main:stdout> flutter: constraints: BoxConstraints(0.0<=w<=375.0, 0.0<=h<=664.0)
main:stdout> flutter: size: Size(375.0, 664.0)
main:stdout> flutter: axisDirection: down
main:stdout> flutter: crossAxisDirection: right
main:stdout> flutter: offset: ScrollPositionWithSingleContext#e1ecd(offset: 0.0, range: 0.0..332.0, viewport: 664.0,
main:stdout> flutter: ScrollableState, BouncingScrollPhysics -> AlwaysScrollableScrollPhysics -> BouncingScrollPhysics
main:stdout> flutter: -> RangeMaintainingScrollPhysics, IdleScrollActivity#8ce00, ScrollDirection.idle)
main:stdout> flutter: anchor: 0.0
main:stdout> flutter: This RenderObject had the following descendants (showing up to depth 5):
main:stdout> flutter: center child: RenderSliverToBoxAdapter#0b5c4 relayoutBoundary=up1 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderLimitedBox#29897 relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderConstrainedBox#1f75d NEEDS-PAINT
main:stdout> flutter: child 1: RenderSliverList#85a0e relayoutBoundary=up1 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child with index 0: RenderIndexedSemantics#82aee relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderRepaintBoundary#eaddc relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderVisibilityDetector#f74d4 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderPadding#c607e relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child with index 1: RenderIndexedSemantics#6e05d relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderRepaintBoundary#4b781 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderPadding#8dc68 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderConstrainedBox#769f6 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child with index 2: RenderIndexedSemantics#3a5de relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderRepaintBoundary#04013 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderConstrainedBox#33572 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderParagraph#98903 NEEDS-PAINT
main:stdout> flutter: child with index 3: RenderIndexedSemantics#3acee relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderRepaintBoundary#4e9d0 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderConstrainedBox#2f2e8 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderParagraph#e2a07 NEEDS-PAINT
main:stdout> flutter: child with index 4: RenderIndexedSemantics#1801f relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderRepaintBoundary#e9ff6 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderConstrainedBox#18957 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderParagraph#dcbaf NEEDS-PAINT
main:stdout> flutter: child with index 5: RenderIndexedSemantics#5599c relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderRepaintBoundary#a1b62 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderConstrainedBox#bbf4c relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
main:stdout> flutter: child: RenderParagraph#4c6c9 NEEDS-PAINT
main:stdout> flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════

@wangruofeng
Copy link
Author

上面的问题是偶现,和页面的内容的数量有关系

页面层级如下

 Stack(
                  children: [
                    Container(
                      margin: EdgeInsets.only(
                          top: 48),
                      child: SmartRefresher(
                        enablePullDown: false,
                        enablePullUp: true,
                        footer: _buildRefreshFooter(pageLoadStatus),
                        onLoading: _bloc.getNextHotelList,
                        controller: _refreshController,
                        child: CustomScrollView(
                          slivers: <Widget>[
                           // some content widget
                          ],
                        ),
                      ),
                    ),
                );

@wangruofeng
Copy link
Author

经测试,把enablePullDown 属性设置为true,页面正常

@SalahAdDin
Copy link

I have the same problem:

The following assertion was thrown during performLayout():
'package:flutter/src/rendering/sliver_multi_box_adaptor.dart': Failed assertion: line 544 pos 12: 'child.hasSize': is not true.


Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

The relevant error-causing widget was: 
  SmartRefresher file:///home/luisalaguna/Projects/cancer/thesis_cancer/lib/features/home/presentation/widgets/posts_list.dart:33:19
When the exception was thrown, this was the stack: 
#2      RenderSliverMultiBoxAdaptor.paintExtentOf (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:544:12)
#3      RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:226:58)
#4      RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#5      RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:137:12)
#6      RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:371:11)
...
The following RenderObject was being processed when the exception was fired: RenderSliverList#eeb51 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...  parentData: paintOffset=Offset(0.0, 0.0) (can use size)
...  constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: 0.0, remainingPaintExtent: 721.4, crossAxisExtent: 391.4, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 731.4, remainingCacheExtent: 971.4, cacheOrigin: 0.0)
...  geometry: null
...  currently live children: 0 to 0
RenderObject: RenderSliverList#eeb51 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
  parentData: paintOffset=Offset(0.0, 0.0) (can use size)
  constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: 0.0, remainingPaintExtent: 721.4, crossAxisExtent: 391.4, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 731.4, remainingCacheExtent: 971.4, cacheOrigin: 0.0)
  geometry: null
  currently live children: 0 to 0
...  child with index 0: RenderIndexedSemantics#39c8b relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...    parentData: index=0; layoutOffset=0.0 (can use size)
...    constraints: BoxConstraints(w=391.4, 0.0<=h<=Infinity)
...    semantic boundary
...    size: MISSING
...    index: 0
...    child: RenderRepaintBoundary#796f1 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      needs compositing
...      parentData: <none> (can use size)
...      constraints: BoxConstraints(w=391.4, 0.0<=h<=Infinity)
...      size: MISSING
...      usefulness ratio: no metrics collected yet (never painted)
...      child: RenderSemanticsAnnotations#6e521 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...        parentData: <none> (can use size)
...        constraints: BoxConstraints(w=391.4, 0.0<=h<=Infinity)
...        semantic boundary
...        size: MISSING
...        child: RenderPadding#74e7e relayoutBoundary=up6 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          parentData: <none> (can use size)
...          constraints: BoxConstraints(w=391.4, 0.0<=h<=Infinity)
...          size: MISSING
...          padding: EdgeInsets.all(4.0)
...          textDirection: ltr
====================================================================================================

======== Exception caught by rendering library =====================================================
The following _CastError was thrown during performLayout():
Null check operator used on a null value

The relevant error-causing widget was: 
  SmartRefresher file:///home/luisalaguna/Projects/cancer/thesis_cancer/lib/features/home/presentation/widgets/posts_list.dart:33:19
When the exception was thrown, this was the stack: 
#0      RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:149:63)
#1      RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:371:11)
#2      RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#3      RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:510:13)
#4      RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1574:12)
...
The following RenderObject was being processed when the exception was fired: RenderSliverPadding#5f5dc relayoutBoundary=up1 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...  parentData: paintOffset=Offset(0.0, 0.0) (can use size)
...  constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: 0.0, remainingPaintExtent: 731.4, crossAxisExtent: 411.4, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 731.4, remainingCacheExtent: 981.4, cacheOrigin: 0.0)
...  geometry: null
...  padding: EdgeInsets.all(10.0)
...  textDirection: ltr
RenderObject: RenderSliverPadding#5f5dc relayoutBoundary=up1 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
  parentData: paintOffset=Offset(0.0, 0.0) (can use size)
  constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: 0.0, remainingPaintExtent: 731.4, crossAxisExtent: 411.4, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 731.4, remainingCacheExtent: 981.4, cacheOrigin: 0.0)
  geometry: null
  padding: EdgeInsets.all(10.0)
  textDirection: ltr
...  child: RenderSliverList#eeb51 relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...    parentData: paintOffset=Offset(0.0, 0.0) (can use size)
...    constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: 0.0, remainingPaintExtent: 721.4, crossAxisExtent: 391.4, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 731.4, remainingCacheExtent: 971.4, cacheOrigin: 0.0)
...    geometry: null
...    currently live children: 0 to 0
...    child with index 0: RenderIndexedSemantics#39c8b relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      parentData: index=0; layoutOffset=0.0 (can use size)
...      constraints: BoxConstraints(w=391.4, 0.0<=h<=Infinity)
...      semantic boundary
...      size: MISSING
...      index: 0
...      child: RenderRepaintBoundary#796f1 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...        needs compositing
...        parentData: <none> (can use size)
...        constraints: BoxConstraints(w=391.4, 0.0<=h<=Infinity)
...        size: MISSING
...        usefulness ratio: no metrics collected yet (never painted)
...        child: RenderSemanticsAnnotations#6e521 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          parentData: <none> (can use size)
...          constraints: BoxConstraints(w=391.4, 0.0<=h<=Infinity)
...          semantic boundary
...          size: MISSING
====================================================================================================

======== Exception caught by rendering library =====================================================
The following _CastError was thrown during performLayout():
Null check operator used on a null value

The relevant error-causing widget was: 
  SmartRefresher file:///home/luisalaguna/Projects/cancer/thesis_cancer/lib/features/home/presentation/widgets/posts_list.dart:33:19
When the exception was thrown, this was the stack: 
#0      RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:525:64)
#1      RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1574:12)
#2      RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1483:20)
#3      RenderObject.layout (package:flutter/src/rendering/object.dart:1779:7)
#4      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
...
The following RenderObject was being processed when the exception was fired: RenderViewport#054a4 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...  needs compositing
...  parentData: <none> (can use size)
...  constraints: BoxConstraints(w=411.4, h=731.4)
...  size: Size(411.4, 731.4)
...  axisDirection: down
...  crossAxisDirection: right
...  offset: ScrollPositionWithSingleContext#7c837(offset: 0.0, range: null..null, viewport: 731.4, ScrollableState, BouncingScrollPhysics -> AlwaysScrollableScrollPhysics -> ClampingScrollPhysics -> RangeMaintainingScrollPhysics, IdleScrollActivity#06348, ScrollDirection.idle)
...  anchor: 0.0
RenderObject: RenderViewport#054a4 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
  needs compositing
  parentData: <none> (can use size)
  constraints: BoxConstraints(w=411.4, h=731.4)
  size: Size(411.4, 731.4)
  axisDirection: down
  crossAxisDirection: right
  offset: ScrollPositionWithSingleContext#7c837(offset: 0.0, range: null..null, viewport: 731.4, ScrollableState, BouncingScrollPhysics -> AlwaysScrollableScrollPhysics -> ClampingScrollPhysics -> RangeMaintainingScrollPhysics, IdleScrollActivity#06348, ScrollDirection.idle)
  anchor: 0.0
...  center child: RenderSliverRefresh#f4f9e relayoutBoundary=up1 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...    parentData: paintOffset=Offset(0.0, 0.0) (can use size)
...    constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: 0.0, remainingPaintExtent: 731.4, crossAxisExtent: 411.4, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 731.4, remainingCacheExtent: 981.4, cacheOrigin: 0.0)
...    geometry: SliverGeometry(scrollExtent: 0.0, hidden, maxPaintExtent: 0.0)
...      scrollExtent: 0.0
...      hidden
...      maxPaintExtent: 0.0
...    child: RenderRotatedBox#f2181 relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      parentData: paintOffset=Offset(0.0, 0.0) (can use size)
...      constraints: BoxConstraints(w=411.4, 0.0<=h<=Infinity)
...      size: Size(411.4, 100.0)
...      child: RenderConstrainedBox#baf01 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...        parentData: offset=Offset(0.0, 0.0) (can use size)
...        constraints: BoxConstraints(w=411.4, 0.0<=h<=Infinity)
...        size: Size(411.4, 100.0)
...        additionalConstraints: BoxConstraints(0.0<=w<=Infinity, h=100.0)
...        child: RenderStack#a5e73 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          parentData: <none> (can use size)
...          constraints: BoxConstraints(w=411.4, h=100.0)
...          size: Size(411.4, 100.0)
...          alignment: AlignmentDirectional.topStart
...          textDirection: ltr
...          fit: loose
...  child 1: RenderSliverPadding#5f5dc relayoutBoundary=up1 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...    parentData: paintOffset=Offset(0.0, 0.0) (can use size)
...    constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: 0.0, remainingPaintExtent: 731.4, crossAxisExtent: 411.4, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 731.4, remainingCacheExtent: 981.4, cacheOrigin: 0.0)
...    geometry: null
...    padding: EdgeInsets.all(10.0)
...    textDirection: ltr
...    child: RenderSliverList#eeb51 relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      parentData: paintOffset=Offset(0.0, 0.0) (can use size)
...      constraints: SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: 0.0, remainingPaintExtent: 721.4, crossAxisExtent: 391.4, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 731.4, remainingCacheExtent: 971.4, cacheOrigin: 0.0)
...      geometry: null
...      currently live children: 0 to 0
...      child with index 0: RenderIndexedSemantics#39c8b relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...        parentData: index=0; layoutOffset=0.0 (can use size)
...        constraints: BoxConstraints(w=391.4, 0.0<=h<=Infinity)
...        semantic boundary
...        size: MISSING
...        index: 0
...        child: RenderRepaintBoundary#796f1 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          needs compositing
...          parentData: <none> (can use size)
...          constraints: BoxConstraints(w=391.4, 0.0<=h<=Infinity)
...          size: MISSING
...          usefulness ratio: no metrics collected yet (never painted)
...  child 2: RenderSliverLoading#9d6bc NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...    parentData: paintOffset=Offset(0.0, 0.0)
...    constraints: MISSING
...    geometry: null
...    child: _RenderLayoutBuilder#bb703 NEEDS-LAYOUT NEEDS-PAINT
...      parentData: paintOffset=Offset(0.0, 0.0)
...      constraints: MISSING
...      size: MISSING

But in this case using a Card or Swiper widget as list item.

@lakerszhy
Copy link

如果enablePullDown和enablePullUp都是false,会报错这个错误。暂时的解决办法是enablePullDown设置为true,然后在onRefresh回调中调用_controller.refreshCompleted()。

@SalahAdDin
Copy link

如果enablePullDown和enablePullUp都是false,会报错这个错误。暂时的解决办法是enablePullDown设置为true,然后在onRefresh回调中调用_controller.refreshCompleted()。

If both enablePullDown and enablePullUp are false, this error will be reported. The temporary solution is to set enablePullDown to true, and then call _controller.refreshCompleted() in the onRefresh callback.

@dazeGitHub
Copy link

我是真难受,用这个库各种报错,我真服了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
0