@@ -579,6 +579,7 @@ class _RenderSliverStickyHeaderList extends RenderSliver with RenderSliverHelper
579579 assert (geometry.visible == (geometry.paintExtent > 0 ));
580580 assert (geometry.maxScrollObstructionExtent == 0 );
581581 assert (geometry.crossAxisExtent == null );
582+ final childExtent = geometry.layoutExtent;
582583
583584 if (header != null ) {
584585 header! .layout (constraints.asBoxConstraints (), parentUsesSize: true );
@@ -594,8 +595,8 @@ class _RenderSliverStickyHeaderList extends RenderSliver with RenderSliverHelper
594595 final paintedHeaderSize = calculatePaintOffset (constraints, from: 0 , to: headerExtent);
595596 geometry = SliverGeometry ( // TODO review interaction with other slivers
596597 scrollExtent: geometry.scrollExtent,
597- layoutExtent: geometry.layoutExtent ,
598- paintExtent: math.max (geometry.paintExtent , paintedHeaderSize),
598+ layoutExtent: childExtent ,
599+ paintExtent: math.max (childExtent , paintedHeaderSize),
599600 maxPaintExtent: math.max (geometry.maxPaintExtent, headerExtent),
600601 hasVisualOverflow: geometry.hasVisualOverflow
601602 || headerExtent > constraints.remainingPaintExtent,
@@ -609,7 +610,7 @@ class _RenderSliverStickyHeaderList extends RenderSliver with RenderSliverHelper
609610 );
610611
611612 headerOffset = _headerAtCoordinateEnd ()
612- ? geometry.layoutExtent - headerExtent
613+ ? childExtent - headerExtent
613614 : 0.0 ;
614615 } else {
615616 // The header's item has [StickyHeaderItem.allowOverflow] false.
@@ -619,11 +620,11 @@ class _RenderSliverStickyHeaderList extends RenderSliver with RenderSliverHelper
619620 // The limiting edge of the header's item,
620621 // in the outer, non-scrolling coordinates.
621622 final endBoundAbsolute = axisDirectionIsReversed (constraints.growthAxisDirection)
622- ? geometry.layoutExtent - (_headerEndBound! - constraints.scrollOffset)
623+ ? childExtent - (_headerEndBound! - constraints.scrollOffset)
623624 : _headerEndBound! - constraints.scrollOffset;
624625
625626 headerOffset = _headerAtCoordinateEnd ()
626- ? math.max (geometry.layoutExtent - headerExtent, endBoundAbsolute)
627+ ? math.max (childExtent - headerExtent, endBoundAbsolute)
627628 : math.min (0.0 , endBoundAbsolute - headerExtent);
628629 }
629630
0 commit comments