Skip to content

SliverCrossAxisGroup throws _assertOutOfExtent when available cross-axis extent is fully consumed by inflexible children (SliverConstrainedCrossAxis) #191275

Closed

Description

@zemanux

Steps to reproduce

  1. Run the following minimal reproduction code on any platform with a window or constrained width <= 300.

Expected results

Unlike RenderFlex (Row / Column), which gracefully assigns 0.0 width/height to flexible children when no free space remains, RenderSliverCrossAxisGroup crashes unconditionally.

SliverCrossAxisGroup should allow flexible children to be laid out with a cross-axis extent of 0.0 without asserting, matching the behavior of Flex / Expanded.

Actual results

Raise a SliverCrossAxisGroup ran out of extent before child could be laid out. exception.

Code sample

Code sample
import 'package:flutter/material.dart';

void main() => runApp(const MaterialApp(home: SliverCenteredExample()));

class SliverCenteredExample extends StatelessWidget {
  const SliverCenteredExample({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Centered SliverConstrainedCrossAxis')),
      body: ConstrainedBox(
        constraints: const BoxConstraints(maxWidth: 300),
        child: CustomScrollView(
          slivers: <Widget>[
            SliverCrossAxisGroup(
              slivers: <Widget>[
                // Flexible left spacer / column
                SliverCrossAxisExpanded(
                  flex: 1,
                  sliver: SliverToBoxAdapter(
                    child: Container(
                      color: Colors.blue.withValues(alpha: 0.1),
                      height: 400,
                      alignment: Alignment.center,
                      child: const Text('Expanded (Left)'),
                    ),
                  ),
                ),

                // Center content with fixed constrained width (e.g. 300 px)
                SliverConstrainedCrossAxis(
                  maxExtent: 300.0,
                  sliver: SliverList.builder(
                    itemCount: 15,
                    itemBuilder: (BuildContext context, int index) {
                      return Card(
                        color: Colors.amber.shade100,
                        margin: const EdgeInsets.symmetric(
                          vertical: 4.0,
                          horizontal: 8.0,
                        ),
                        child: ListTile(
                          leading: CircleAvatar(child: Text('${index + 1}')),
                          title: Text('Center item ${index + 1}'),
                        ),
                      );
                    },
                  ),
                ),

                // Flexible right spacer / column
                SliverCrossAxisExpanded(
                  flex: 1,
                  sliver: SliverToBoxAdapter(
                    child: Container(
                      color: Colors.blue.withValues(alpha: 0.1),
                      height: 400,
                      alignment: Alignment.center,
                      child: const Text('Expanded (Right)'),
                    ),
                  ),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
demo.mov

Logs

Logs
The entrypoint file (i.e. the file with main()) /Users/***/dev/open-source/flutter_tester/lib/cases/sliver_constraints.dart cannot be found. Moving or renaming this file will prevent changes to its contents from being discovered during hot reload/restart until flutter is restarted or the file is restored.
Restarted application in 629ms.

════════ Exception caught by rendering library ═════════════════════════════════
The following assertion was thrown during performLayout():
SliverCrossAxisGroup ran out of extent before child could be laid out.
SliverCrossAxisGroup lays out any slivers with a constrained cross axis before laying out those which expand. In this case, cross axis extent was used up before the next sliver could be laid out.
Make sure that the total amount of extent allocated by constrained child slivers does not exceed the cross axis extent that is available for the SliverCrossAxisGroup.

The relevant error-causing widget was:
    SliverCrossAxisGroup SliverCrossAxisGroup:file:///Users/***/dev/open-source/flutter_tester/lib/cases/sliver_constraints.dart:16:13

When the exception was thrown, this was the stack:
#0      _assertOutOfExtent (package:flutter/src/rendering/sliver_group.dart:179:5)
#1      RenderSliverCrossAxisGroup.performLayout (package:flutter/src/rendering/sliver_group.dart:93:16)
#2      RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#3      RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:821:13)
#4      RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1831:12)
#5      RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1724:20)
#6      RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#7      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#8      RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#9      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#10     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#11     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#12     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#13     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#14     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#15     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#16     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#17     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#18     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#19     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#20     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#21     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#22     RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:574:11)
#23     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#24     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#25     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#26     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#27     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#28     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#29     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#30     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#31     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#32     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#33     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#34     RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:310:14)
#35     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#36     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:180:12)
#37     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1113:7)
#38     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:246:7)
#39     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:417:14)
#40     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#41     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#42     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#43     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#44     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1565:11)
#45     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#46     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#47     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#48     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#49     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#50     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#51     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#52     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:62:11)
#53     RenderStack._computeSize (package:flutter/src/rendering/stack.dart:647:43)
#54     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:682:12)
#55     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#56     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#57     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#58     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#59     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#60     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#61     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#62     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#63     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#64     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#65     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#66     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#67     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3939:13)
#68     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#69     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#70     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#71     _RenderTheaterMixin.layoutChild (package:flutter/src/widgets/overlay.dart:1124:13)
#72     _RenderTheater.performLayout (package:flutter/src/widgets/overlay.dart:1482:9)
#73     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#74     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#75     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#76     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#77     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#78     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#79     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#80     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#81     RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:574:11)
#82     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#83     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#84     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#85     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#86     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#87     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#88     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#89     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#90     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#91     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#92     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#93     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#94     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#95     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:18)
#96     RenderObject.layout (package:flutter/src/rendering/object.dart:2922:7)
#97     RenderView.performLayout (package:flutter/src/rendering/view.dart:292:12)
#98     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2770:7)
#99     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1174:18)
#100    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1187:15)
#101    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:692:23)
#102    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1574:13)
#103    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:558:5)
#104    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1430:15)
#105    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1345:9)
#106    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:1055:9)
#107    PlatformDispatcher.scheduleWarmUpFrame.<anonymous closure> (dart:ui/platform_dispatcher.dart:912:16)
#111    _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
(elided 3 frames from class _Timer and dart:async-patch)

The following RenderObject was being processed when the exception was fired: RenderSliverCrossAxisGroup#468ed 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, precedingScrollExtent: 0.0, remainingPaintExtent: 809.0, crossAxisExtent: 300.0, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 809.0, remainingCacheExtent: 1059.0, cacheOrigin: 0.0)
    geometry: SliverGeometry(scrollExtent: 0.0, hidden, maxPaintExtent: 0.0)
        scrollExtent: 0.0
        hidden
        maxPaintExtent: 0.0
    child 1: RenderSliverToBoxAdapter#34793 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: paintOffset=Offset(0.0, 0.0)
        constraints: MISSING
        geometry: null
        child: RenderConstrainedBox#fb890 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            parentData: paintOffset=Offset(0.0, 0.0)
            constraints: MISSING
            size: MISSING
            additionalConstraints: BoxConstraints(0.0<=w<=Infinity, h=400.0)
            child: _RenderColoredBox#2dc0f NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none>
                constraints: MISSING
                size: MISSING
                behavior: opaque
                child: RenderPositionedBox#e5e1f NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    parentData: <none>
                    constraints: MISSING
                    size: MISSING
                    alignment: Alignment.center
                    textDirection: ltr
                    widthFactor: expand
                    heightFactor: expand
    child 2: RenderSliverConstrainedCrossAxis#d4b87 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, precedingScrollExtent: 0.0, remainingPaintExtent: 809.0, crossAxisExtent: 300.0, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 809.0, remainingCacheExtent: 1059.0, cacheOrigin: 0.0)
        geometry: SliverGeometry(scrollExtent: 840.0, paintExtent: 809.0, maxPaintExtent: 840.0, hasVisualOverflow: true, cacheExtent: 840.0)
            scrollExtent: 840.0
            paintExtent: 809.0
            maxPaintExtent: 840.0
            hasVisualOverflow: true
            cacheExtent: 840.0
        child: RenderSliverList#a81c4 relayoutBoundary=up3 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, precedingScrollExtent: 0.0, remainingPaintExtent: 809.0, crossAxisExtent: 300.0, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 809.0, remainingCacheExtent: 1059.0, cacheOrigin: 0.0)
            geometry: SliverGeometry(scrollExtent: 840.0, paintExtent: 809.0, maxPaintExtent: 840.0, hasVisualOverflow: true, cacheExtent: 840.0)
                scrollExtent: 840.0
                paintExtent: 809.0
                maxPaintExtent: 840.0
                hasVisualOverflow: true
                cacheExtent: 840.0
            currently live children: 0 to 14
            child with index 0: RenderIndexedSemantics#8cc03 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=0; layoutOffset=0.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 0
                child: RenderRepaintBoundary#a4dba relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 1: RenderIndexedSemantics#bfe86 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=1; layoutOffset=56.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 1
                child: RenderRepaintBoundary#99d3d relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 2: RenderIndexedSemantics#99645 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=2; layoutOffset=112.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 2
                child: RenderRepaintBoundary#e2066 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 3: RenderIndexedSemantics#a4f67 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=3; layoutOffset=168.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 3
                child: RenderRepaintBoundary#087d5 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 4: RenderIndexedSemantics#0db7e relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=4; layoutOffset=224.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 4
                child: RenderRepaintBoundary#93e32 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 5: RenderIndexedSemantics#74527 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=5; layoutOffset=280.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 5
                child: RenderRepaintBoundary#cdb0f relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 6: RenderIndexedSemantics#6fc51 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=6; layoutOffset=336.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 6
                child: RenderRepaintBoundary#f39f1 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 7: RenderIndexedSemantics#0e94b relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=7; layoutOffset=392.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 7
                child: RenderRepaintBoundary#fa2fc relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 8: RenderIndexedSemantics#53ea2 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=8; layoutOffset=448.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 8
                child: RenderRepaintBoundary#8ce48 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 9: RenderIndexedSemantics#2f42b relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=9; layoutOffset=504.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 9
                child: RenderRepaintBoundary#060f5 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 10: RenderIndexedSemantics#2d399 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=10; layoutOffset=560.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 10
                child: RenderRepaintBoundary#6252d relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 11: RenderIndexedSemantics#8c3c8 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=11; layoutOffset=616.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 11
                child: RenderRepaintBoundary#e3350 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 12: RenderIndexedSemantics#fcdfb relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=12; layoutOffset=672.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 12
                child: RenderRepaintBoundary#295a7 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 13: RenderIndexedSemantics#98f76 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=13; layoutOffset=728.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 13
                child: RenderRepaintBoundary#8f135 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 14: RenderIndexedSemantics#1c186 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=14; layoutOffset=784.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 14
                child: RenderRepaintBoundary#12de6 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
    child 3: RenderSliverToBoxAdapter#404af NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: paintOffset=Offset(0.0, 0.0)
        constraints: MISSING
        geometry: null
        child: RenderConstrainedBox#3b592 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            parentData: paintOffset=Offset(0.0, 0.0)
            constraints: MISSING
            size: MISSING
            additionalConstraints: BoxConstraints(0.0<=w<=Infinity, h=400.0)
            child: _RenderColoredBox#0e174 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none>
                constraints: MISSING
                size: MISSING
                behavior: opaque
                child: RenderPositionedBox#567d5 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    parentData: <none>
                    constraints: MISSING
                    size: MISSING
                    alignment: Alignment.center
                    textDirection: ltr
                    widthFactor: expand
                    heightFactor: expand
RenderObject: RenderSliverCrossAxisGroup#468ed 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, precedingScrollExtent: 0.0, remainingPaintExtent: 809.0, crossAxisExtent: 300.0, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 809.0, remainingCacheExtent: 1059.0, cacheOrigin: 0.0)
    geometry: SliverGeometry(scrollExtent: 0.0, hidden, maxPaintExtent: 0.0)
        scrollExtent: 0.0
        hidden
        maxPaintExtent: 0.0
    child 1: RenderSliverToBoxAdapter#34793 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: paintOffset=Offset(0.0, 0.0)
        constraints: MISSING
        geometry: null
        child: RenderConstrainedBox#fb890 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            parentData: paintOffset=Offset(0.0, 0.0)
            constraints: MISSING
            size: MISSING
            additionalConstraints: BoxConstraints(0.0<=w<=Infinity, h=400.0)
            child: _RenderColoredBox#2dc0f NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none>
                constraints: MISSING
                size: MISSING
                behavior: opaque
                child: RenderPositionedBox#e5e1f NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    parentData: <none>
                    constraints: MISSING
                    size: MISSING
                    alignment: Alignment.center
                    textDirection: ltr
                    widthFactor: expand
                    heightFactor: expand
    child 2: RenderSliverConstrainedCrossAxis#d4b87 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, precedingScrollExtent: 0.0, remainingPaintExtent: 809.0, crossAxisExtent: 300.0, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 809.0, remainingCacheExtent: 1059.0, cacheOrigin: 0.0)
        geometry: SliverGeometry(scrollExtent: 840.0, paintExtent: 809.0, maxPaintExtent: 840.0, hasVisualOverflow: true, cacheExtent: 840.0)
            scrollExtent: 840.0
            paintExtent: 809.0
            maxPaintExtent: 840.0
            hasVisualOverflow: true
            cacheExtent: 840.0
        child: RenderSliverList#a81c4 relayoutBoundary=up3 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, precedingScrollExtent: 0.0, remainingPaintExtent: 809.0, crossAxisExtent: 300.0, crossAxisDirection: AxisDirection.right, viewportMainAxisExtent: 809.0, remainingCacheExtent: 1059.0, cacheOrigin: 0.0)
            geometry: SliverGeometry(scrollExtent: 840.0, paintExtent: 809.0, maxPaintExtent: 840.0, hasVisualOverflow: true, cacheExtent: 840.0)
                scrollExtent: 840.0
                paintExtent: 809.0
                maxPaintExtent: 840.0
                hasVisualOverflow: true
                cacheExtent: 840.0
            currently live children: 0 to 14
            child with index 0: RenderIndexedSemantics#8cc03 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=0; layoutOffset=0.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 0
                child: RenderRepaintBoundary#a4dba relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 1: RenderIndexedSemantics#bfe86 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=1; layoutOffset=56.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 1
                child: RenderRepaintBoundary#99d3d relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 2: RenderIndexedSemantics#99645 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=2; layoutOffset=112.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 2
                child: RenderRepaintBoundary#e2066 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 3: RenderIndexedSemantics#a4f67 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=3; layoutOffset=168.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 3
                child: RenderRepaintBoundary#087d5 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 4: RenderIndexedSemantics#0db7e relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=4; layoutOffset=224.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 4
                child: RenderRepaintBoundary#93e32 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 5: RenderIndexedSemantics#74527 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=5; layoutOffset=280.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 5
                child: RenderRepaintBoundary#cdb0f relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 6: RenderIndexedSemantics#6fc51 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=6; layoutOffset=336.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 6
                child: RenderRepaintBoundary#f39f1 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 7: RenderIndexedSemantics#0e94b relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=7; layoutOffset=392.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 7
                child: RenderRepaintBoundary#fa2fc relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 8: RenderIndexedSemantics#53ea2 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=8; layoutOffset=448.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 8
                child: RenderRepaintBoundary#8ce48 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 9: RenderIndexedSemantics#2f42b relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=9; layoutOffset=504.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 9
                child: RenderRepaintBoundary#060f5 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 10: RenderIndexedSemantics#2d399 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=10; layoutOffset=560.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 10
                child: RenderRepaintBoundary#6252d relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 11: RenderIndexedSemantics#8c3c8 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=11; layoutOffset=616.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 11
                child: RenderRepaintBoundary#e3350 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 12: RenderIndexedSemantics#fcdfb relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=12; layoutOffset=672.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 12
                child: RenderRepaintBoundary#295a7 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 13: RenderIndexedSemantics#98f76 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=13; layoutOffset=728.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 13
                child: RenderRepaintBoundary#8f135 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
            child with index 14: RenderIndexedSemantics#1c186 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: index=14; layoutOffset=784.0 (can use size)
                constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                size: Size(300.0, 56.0)
                index: 14
                child: RenderRepaintBoundary#12de6 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none> (can use size)
                    constraints: BoxConstraints(w=300.0, 0.0<=h<=Infinity)
                    size: Size(300.0, 56.0)
                    usefulness ratio: no metrics collected yet (never painted)
    child 3: RenderSliverToBoxAdapter#404af NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: paintOffset=Offset(0.0, 0.0)
        constraints: MISSING
        geometry: null
        child: RenderConstrainedBox#3b592 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            parentData: paintOffset=Offset(0.0, 0.0)
            constraints: MISSING
            size: MISSING
            additionalConstraints: BoxConstraints(0.0<=w<=Infinity, h=400.0)
            child: _RenderColoredBox#0e174 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: <none>
                constraints: MISSING
                size: MISSING
                behavior: opaque
                child: RenderPositionedBox#567d5 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    parentData: <none>
                    constraints: MISSING
                    size: MISSING
                    alignment: Alignment.center
                    textDirection: ltr
                    widthFactor: expand
                    heightFactor: expand
════════════════════════════════════════════════════════════════════════════════

Flutter Doctor output

Doctor output
[✓] Flutter (Channel master, 3.48.0-1.0.pre-230, on macOS 26.6.1 25G76 darwin-arm64, locale fr-FR) [11,6s]
    • Flutter version 3.48.0-1.0.pre-230 on channel master at /Users/***/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4abfc5dcd0 (3 days ago), 2026-08-16 02:24:33 +0000
    • Engine revision 99af2708f8
    • Dart version 3.14.0 (build 3.14.0-134.0.dev)
    • DevTools version 2.61.0-dev.0
    • Pub download mirror https://pub.dev
    • Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android, enable-ios, cli-animations, enable-native-assets,
      enable-record-use, enable-swift-package-manager, omit-legacy-version-file, enable-lldb-debugging, no-enable-uiscene-migration, enable-riscv64

[✓] Android toolchain - develop for Android devices (Android SDK version 36.1.0) [10,4s]
    • Android SDK at /Users/***/Library/Android/sdk
    • Emulator version 37.1.11.0 (build_id 15917651) (CL:N/A)
    • Platform android-36.1, build-tools 36.1.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 25.0.2+-15348964-b329.117)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 26.6) [11,3s]
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 17F113
    • CocoaPods version 1.16.2

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

[✓] Connected device (2 available) [8,7s]
    • macOS (desktop) • macos  • darwin-arm64   • macOS 26.6.1 25G76 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 151.0.7922.138

[✓] Network resources [293ms]
    • All expected network resources are available.

• No issues found!

Activity

  1. added
    c: crashStack traces logged to the console
    frameworkflutter/packages/flutter repository. See also f: labels.
    f: scrollingViewports, list views, slivers, etc.
    has reproducible stepsThe issue has been confirmed reproducible and is ready to work on
    on Aug 18, 2026
  2. mbcorona commented on Aug 18, 2026

    @mbcorona
    Member

    Hi @zemanux, thanks for the minimal repro and the fix PR (#191287). Routing to the framework team for evaluation.

  3. added
    P2Important issues not at the top of the work list
    on Aug 18, 2026
  4. justinmc commented on Aug 18, 2026

    @justinmc
    Contributor

    I agree this should work the same way as Flex/Expanded.

  5. zemanux commented on Aug 19, 2026

    @zemanux
    MemberAuthor

    @mbcorona, @JayeshJain25 just to clarify: this PR #191287 is currently kept in draft simply because I am out of office at the moment. I plan to pick this back up next Tuesday to finalize the implementation and tests, if that works for everyone.

    @JayeshJain25, would you be interested in teaming up so we can wrap this up together?

  6. self-assigned this
    on Oct 31, 2026
  7. added a commit that references this issue on Nov 11, 2026
    3b3db93
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work listc: crashStack traces logged to the consolef: scrollingViewports, list views, slivers, etc.frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onteam-frameworkOwned by Framework teamtriaged-frameworkTriaged by Framework team

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions