Skip to content

The first item is broken when I scroll back #29665

@keeweeChang

Description

@keeweeChang

Steps to Reproduce

1.Scroll up the list
2.Scroll down the list, sometimes the first item would be disappear and show the error log.
Screenshot_1553070071

And I also upload the demo if you want to check source code.
https://github.com/keeweeChang/flutter_news/tree/list_error

Logs

I/flutter (30902): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (30902): The following assertion was thrown building FutureBuilder(state:
I/flutter (30902): _FutureBuilderState#fd3d0):
I/flutter (30902): 'package:flutter/src/rendering/object.dart': Failed assertion: line 1409 pos 14:
I/flutter (30902): '_debugSubtreeRelayoutRootAlreadyMarkedNeedsLayout()': is not true.
I/flutter (30902):
I/zygote (30902): Do partial code cache collection, code=59KB, data=43KB
I/flutter (30902): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter (30902): more information in this error message to help you determine and fix the underlying cause.
I/flutter (30902): In either case, please report this assertion by filing a bug on GitHub:
I/flutter (30902): https://github.com/flutter/flutter/issues/new?template=BUG.md
I/flutter (30902):
I/flutter (30902): When the exception was thrown, this was the stack:
I/flutter (30902): #2 RenderObject.markNeedsLayout (package:flutter/src/rendering/object.dart:1409:14)
I/flutter (30902): #3 RenderBox.markNeedsLayout (package:flutter/src/rendering/box.dart:1842:11)
I/flutter (30902): #4 RenderObject.dropChild (package:flutter/src/rendering/object.dart:1158:5)
I/flutter (30902): #5 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.child= (package:flutter/src/rendering/object.dart:2744:7)
I/flutter (30902): #6 SingleChildRenderObjectElement.removeChildRenderObject (package:flutter/src/widgets/framework.dart:4909:18)
I/flutter (30902): #7 RenderObjectElement.detachRenderObject (package:flutter/src/widgets/framework.dart:4749:36)
I/flutter (30902): #8 Element.detachRenderObject. (package:flutter/src/widgets/framework.dart:2866:13)
I/flutter (30902): #9 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3775:14)
I/flutter (30902): #10 Element.detachRenderObject (package:flutter/src/widgets/framework.dart:2865:5)
I/flutter (30902): #11 Element.deactivateChild (package:flutter/src/widgets/framework.dart:2995:11)
I/flutter (30902): #12 Element.updateChild (package:flutter/src/widgets/framework.dart:2760:7)
I/flutter (30902): #13 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3752:16)
I/flutter (30902): #14 Element.rebuild (package:flutter/src/widgets/framework.dart:3564:5)
I/flutter (30902): #15 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2277:33)
I/zygote (30902): After code cache collection, code=59KB, data=43KB
I/zygote (30902): Increasing code cache capacity to 256KB
I/flutter (30902): #16 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:700:20)
I/flutter (30902): #17 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:275:5)
I/flutter (30902): #18 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
I/flutter (30902): #19 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
I/flutter (30902): #20 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5)
I/flutter (30902): #24 _invoke (dart:ui/hooks.dart:209:10)
I/flutter (30902): #25 _drawFrame (dart:ui/hooks.dart:168:3)
I/flutter (30902): (elided 5 frames from class _AssertionError and package dart:async)
I/flutter (30902): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter (30902): Another exception was thrown: 'package:flutter/src/rendering/object.dart': Failed assertion: line 1153 pos 12: 'child.parentData != null': is not true.
I/flutter (30902): Another exception was thrown: NoSuchMethodError: The getter 'debugDoingLayout' was called on null.
I/flutter (30902): Another exception was thrown: RenderBox was not laid out: _RenderListTile#46ebb relayoutBoundary=up5 NEEDS-PAINT DETACHED
I/flutter (30902): Another exception was thrown: RenderBox was not laid out: RenderPadding#0a187 relayoutBoundary=up4 NEEDS-PAINT DETACHED
I/flutter (30902): Another exception was thrown: RenderBox was not laid out: RenderSemanticsAnnotations#d9f7e relayoutBoundary=up3 NEEDS-PAINT DETACHED
I/flutter (30902): Another exception was thrown: RenderBox was not laid out: RenderPointerListener#e0701 relayoutBoundary=up2 NEEDS-PAINT DETACHED
I/flutter (30902): Another exception was thrown: RenderBox was not laid out: RenderSemanticsGestureHandler#57551 relayoutBoundary=up1 NEEDS-PAINT DETACHED
I/flutter (30902): Another exception was thrown: RenderBox was not laid out: RenderFlex#915e5 NEEDS-PAINT DETACHED
I/flutter (30902): Another exception was thrown: NoSuchMethodError: The method '<=' was called on null.

Flutter doctor

• Flutter version 1.3.8 at /Users/louis/flutter/flutterSDK
• Framework revision e5b1ed7a7f (13 days ago), 2019-03-06 14:23:37 -0800
• Engine revision f4951df193
• Dart version 2.2.1 (build 2.2.1-dev.0.0 571ea80e11)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at /Users/louis/Library/Android/sdk
• Android NDK at /Users/louis/Library/Android/sdk/ndk-bundle
• Platform android-28, build-tools 28.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
• All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 10.1, Build version 10B61
• ios-deploy 1.9.4
• CocoaPods version 1.6.0

[✓] Android Studio (version 3.3)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 31.3.3
• Dart plugin version 182.5124
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[!] IntelliJ IDEA Community Edition (version 2018.2.3)
• IntelliJ at /Applications/IntelliJ IDEA CE.app
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
• For information about installing plugins, see
https://flutter.io/intellij-setup/#installing-the-plugins

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

[✓] Connected device (1 available)
• Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)

Update:
According to my test, the error is solved when I use a fixed height Container to wrap the Item. But I want to ask the ListView item is not supported dynamic height widget or any options I should be set. Or it is an issue in debug mode?
Here is the issue solved widget structure:

螢幕快照 2019-03-28 上午9 45 39

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions