superlistapp / super_sliver_list

Drop-in replacement for SliverList and ListView that can handle large amount of items with variable extents and reliably jump / animate to any item.
https://superlistapp.github.io/super_sliver_list/
MIT License
277 stars 15 forks source link

Error: "Null check operator used on a null value" on _performLayoutInner #40

Closed kylianSalomon closed 5 months ago

kylianSalomon commented 5 months ago

I got this error on a iOS simulator in iOS version 17.2 will trying to render a SuperSliverList widget :

flutter: ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
flutter: The following _TypeError was thrown during performLayout():
flutter: Null check operator used on a null value
flutter:
flutter: The relevant error-causing widget was:
flutter:   SuperSliverList
flutter:   SuperSliverList:file:///.../core/lib/src/widgets/paginated_sliver_list_view.dart:58:12
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #0      RenderSuperSliverList._performLayoutInner (package:super_sliver_list/src/render_object.dart:434:43)
flutter: #1      ExtentManager.performLayout (package:super_sliver_list/src/extent_manager.dart:108:13)
flutter: #2      RenderSuperSliverList.performLayout (package:super_sliver_list/src/render_object.dart:408:20)
flutter: #3      RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
flutter: #4      RenderSuperSliverList.layout (package:super_sliver_list/src/render_object.dart:413:11)
flutter: #5      RenderMultiSliver.layoutChild (package:sliver_tools/src/rendering/multi_sliver.dart:292:13)
flutter: #6      RenderMultiSliver._layoutChildSequence (package:sliver_tools/src/rendering/multi_sliver.dart:154:31)
flutter: #7      RenderMultiSliver.performLayout (package:sliver_tools/src/rendering/multi_sliver.dart:90:24)
flutter: #8      RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
flutter: #9      RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:601:13)
flutter: #10     RenderShrinkWrappingViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1925:12)

The error seems to occured on the lib/src/render_object.dart file in the _perfomLayoutInner function because of a null check operator.

Please let me know if you need more information or if I missed a parameter in the SuperSliverList implementation.

knopp commented 5 months ago

This is a bug where SuperSliverList does not correctly work with shrinkWrap=true. This will be fixed soon. However I can see that you put SuperSliverList inside MultiSliver, which means jumpToItem will not correctly, in case you need it.

knopp commented 5 months ago

This should be fixed in 0.3.0.

kylianSalomon commented 5 months ago

Thanks for the quick answer.