serenader2014 / flutter_carousel_slider

A flutter carousel widget, support infinite scroll, and custom child widget.
https://pub.dev/packages/carousel_slider
MIT License
1.55k stars 516 forks source link

Critical: 'package:flutter/src/rendering/sliver_fixed_extent_list.dart': Failed assertion: line 270 pos 12: 'firstIndex == 0 || childScrollOffset(firstChild!)! - scrollOffset <= precisionErrorTolerance': is not true. #419

Open EArminjon opened 8 months ago

EArminjon commented 8 months ago

flutter 3.7.12 carousel_slider: ^4.2.1

Reproduction step : Click on this carousel example and see console log.

final CarouselController _controller = CarouselController();

GestureDetector(
  onTap: () {
     _controller.animateToPage(2);
  },
  child: AbsorbPointer(
    absorbing: true,
    child: CarouselSlider.builder(
      carouselController: _controller,
      options: CarouselOptions(
        viewportFraction: 1,
        enableInfiniteScroll: true,
        disableCenter: true,
      ),
      itemCount: 5,
      itemBuilder: (BuildContext context, int index, int realIndex) {
        return const SizedBox.square(
          dimension: 100,
          child: Center(child: Text("test")),
        );
      },
    ),
  ),
),
======== Exception caught by rendering library =====================================================
The following assertion was thrown during performLayout():
'package:flutter/src/rendering/sliver_fixed_extent_list.dart': Failed assertion: line 270 pos 12: 'firstIndex == 0 || childScrollOffset(firstChild!)! - scrollOffset <= precisionErrorTolerance': 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: 
  CarouselSlider CarouselSlider:file:///Users/earminjon/Documents/projects/flutter/medias/carousel.dart:92:39
When the exception was thrown, this was the stack: 
#2      RenderSliverFixedExtentBoxAdaptor.performLayout (package:flutter/src/rendering/sliver_fixed_extent_list.dart:270:12)
#3      RenderObject.layout (package:flutter/src/rendering/object.dart:2189:7)
#4      RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:149:12)
#5      _RenderSliverFractionalPadding.performLayout (package:flutter/src/widgets/sliver_fill.dart:166:11)
#6      RenderObject.layout (package:flutter/src/rendering/object.dart:2189:7)
#7      RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:550:13)
#8      RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1634:12)
#9      RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1541:20)
#10     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2027:7)
#11     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1020:18)
#12     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:516:19)
#13     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:865:13)
#14     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:381:5)
#15     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1289:15)
#16     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1218:9)
#17     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1076:5)
#18     _invoke (dart:ui/hooks.dart:145:13)
#19     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:338:5)
#20     _drawFrame (dart:ui/hooks.dart:112:31)
(elided 2 frames from class _AssertionError)
The following RenderObject was being processed when the exception was fired: RenderSliverFillViewport#16fd8 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-COMPOSITING-BITS-UPDATE
...  needs compositing
...  parentData: paintOffset=Offset(0.0, 0.0) (can use size)
...  constraints: SliverConstraints(AxisDirection.right, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: 4114697.1, remainingPaintExtent: 411.4, crossAxisExtent: 231.4, crossAxisDirection: AxisDirection.down, viewportMainAxisExtent: 411.4, remainingCacheExtent: 411.4, cacheOrigin: 0.0)
...  geometry: SliverGeometry(scrollExtent: Infinity, paintExtent: 411.4, maxPaintExtent: Infinity, hasVisualOverflow: true, cacheExtent: 411.4)
...    scrollExtent: Infinity
...    paintExtent: 411.4
...    maxPaintExtent: Infinity
...    hasVisualOverflow: true
...    cacheExtent: 411.4
...  currently live children: 10001 to 10001
RenderObject: RenderSliverFillViewport#16fd8 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-COMPOSITING-BITS-UPDATE
  needs compositing
  parentData: paintOffset=Offset(0.0, 0.0) (can use size)
  constraints: SliverConstraints(AxisDirection.right, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: 4114697.1, remainingPaintExtent: 411.4, crossAxisExtent: 231.4, crossAxisDirection: AxisDirection.down, viewportMainAxisExtent: 411.4, remainingCacheExtent: 411.4, cacheOrigin: 0.0)
  geometry: SliverGeometry(scrollExtent: Infinity, paintExtent: 411.4, maxPaintExtent: Infinity, hasVisualOverflow: true, cacheExtent: 411.4)
    scrollExtent: Infinity
    paintExtent: 411.4
    maxPaintExtent: Infinity
    hasVisualOverflow: true
    cacheExtent: 411.4
  currently live children: 10001 to 10001
...  child with index 10001: RenderIndexedSemantics#b2383
...    needs compositing
...    parentData: index=10001; layoutOffset=4114697.1
...    constraints: BoxConstraints(w=411.4, h=231.4)
...    size: Size(411.4, 231.4)
...    index: 10001
...    child: RenderRepaintBoundary#34957
...      needs compositing
...      parentData: <none> (can use size)
...      constraints: BoxConstraints(w=411.4, h=231.4)
...      layer: OffsetLayer#0e70d
...        engine layer: OffsetEngineLayer#e768f
...        handles: 2
...        offset: Offset(91.4, 0.0)
...      size: Size(411.4, 231.4)
...      metrics: 80.0% useful (1 bad vs 4 good)
...      diagnosis: this is a useful repaint boundary and should be kept
...      child: RenderTransform#7e70b
...        parentData: <none> (can use size)
...        constraints: BoxConstraints(w=411.4, h=231.4)
...        size: Size(411.4, 231.4)
...        transform matrix: [0] 1.0,0.0,0.0,0.0
[1] 0.0,1.0,0.0,0.0
[2] 0.0,0.0,1.0,0.0
[3] 0.0,0.0,0.0,1.0
...        origin: null
...        alignment: Alignment.center
...        textDirection: ltr
...        transformHitTests: true
...        child: RenderConstrainedBox#9a23d
...          parentData: <none> (can use size)
...          constraints: BoxConstraints(w=411.4, h=231.4)
...          size: Size(411.4, 231.4)
...          additionalConstraints: BoxConstraints(0.0<=w<=Infinity, h=231.4)
====================================================================================================
SeriousMonk commented 6 months ago

Same here

WilliamKose commented 5 months ago

Yep, I'm with the same problem

hamidput commented 3 months ago

same here......Any one is there is there solution for it.

PardeepKumar816 commented 4 weeks ago

any one find solution for this......