@@ -579,6 +579,7 @@ class _RenderSliverStickyHeaderList extends RenderSliver with RenderSliverHelper
579
579
assert (geometry.visible == (geometry.paintExtent > 0 ));
580
580
assert (geometry.maxScrollObstructionExtent == 0 );
581
581
assert (geometry.crossAxisExtent == null );
582
+ final childExtent = geometry.layoutExtent;
582
583
583
584
if (header != null ) {
584
585
header! .layout (constraints.asBoxConstraints (), parentUsesSize: true );
@@ -594,8 +595,8 @@ class _RenderSliverStickyHeaderList extends RenderSliver with RenderSliverHelper
594
595
final paintedHeaderSize = calculatePaintOffset (constraints, from: 0 , to: headerExtent);
595
596
geometry = SliverGeometry ( // TODO review interaction with other slivers
596
597
scrollExtent: geometry.scrollExtent,
597
- layoutExtent: geometry.layoutExtent ,
598
- paintExtent: math.max (geometry.paintExtent , paintedHeaderSize),
598
+ layoutExtent: childExtent ,
599
+ paintExtent: math.max (childExtent , paintedHeaderSize),
599
600
maxPaintExtent: math.max (geometry.maxPaintExtent, headerExtent),
600
601
hasVisualOverflow: geometry.hasVisualOverflow
601
602
|| headerExtent > constraints.remainingPaintExtent,
@@ -609,7 +610,7 @@ class _RenderSliverStickyHeaderList extends RenderSliver with RenderSliverHelper
609
610
);
610
611
611
612
headerOffset = _headerAtCoordinateEnd ()
612
- ? geometry.layoutExtent - headerExtent
613
+ ? childExtent - headerExtent
613
614
: 0.0 ;
614
615
} else {
615
616
// The header's item has [StickyHeaderItem.allowOverflow] false.
@@ -619,11 +620,11 @@ class _RenderSliverStickyHeaderList extends RenderSliver with RenderSliverHelper
619
620
// The limiting edge of the header's item,
620
621
// in the outer, non-scrolling coordinates.
621
622
final endBoundAbsolute = axisDirectionIsReversed (constraints.growthAxisDirection)
622
- ? geometry.layoutExtent - (_headerEndBound! - constraints.scrollOffset)
623
+ ? childExtent - (_headerEndBound! - constraints.scrollOffset)
623
624
: _headerEndBound! - constraints.scrollOffset;
624
625
625
626
headerOffset = _headerAtCoordinateEnd ()
626
- ? math.max (geometry.layoutExtent - headerExtent, endBoundAbsolute)
627
+ ? math.max (childExtent - headerExtent, endBoundAbsolute)
627
628
: math.min (0.0 , endBoundAbsolute - headerExtent);
628
629
}
629
630
0 commit comments