Repository navigation
Closed
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: crashStack traces logged to the consoleStack traces logged to the consolef: scrollingViewports, list views, slivers, etc.Viewports, list views, slivers, etc.frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onteam-frameworkOwned by Framework teamOwned by Framework teamtriaged-frameworkTriaged by Framework teamTriaged by Framework team
Description
Steps to reproduce
- 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!Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: crashStack traces logged to the consoleStack traces logged to the consolef: scrollingViewports, list views, slivers, etc.Viewports, list views, slivers, etc.frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onteam-frameworkOwned by Framework teamOwned by Framework teamtriaged-frameworkTriaged by Framework teamTriaged by Framework team
Activity
mbcorona commentedon Aug 18, 2026
Hi @zemanux, thanks for the minimal repro and the fix PR (#191287). Routing to the framework team for evaluation.
justinmc commentedon Aug 18, 2026
I agree this should work the same way as Flex/Expanded.
zemanux commentedon Aug 19, 2026
@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?
Allow SliverCrossAxisGroup children to lay out with zero cross-axis e…