@@ -271,6 +271,34 @@ void main() {
271271 expect (tester.renderObject <RenderBox >(find.text ('x' )).localToGlobal (Offset .zero), const Offset (0.0 , 200.0 ));
272272 });
273273
274+ testWidgets ('SliverPadding with no child reports correct geometry as scroll offset changes' , (WidgetTester tester) async {
275+ // Regression test for https://github.com/flutter/flutter/issues/64506
276+ final ScrollController controller = ScrollController ();
277+ await tester.pumpWidget (
278+ Directionality (
279+ textDirection: TextDirection .ltr,
280+ child: CustomScrollView (
281+ controller: controller,
282+ slivers: const < Widget > [
283+ SliverPadding (padding: EdgeInsets .all (100.0 )),
284+ SliverToBoxAdapter (child: SizedBox (width: 400.0 , height: 400.0 , child: Text ('x' ))),
285+ ],
286+ ),
287+ ),
288+ );
289+ expect (tester.renderObject <RenderBox >(find.text ('x' )).localToGlobal (Offset .zero), const Offset (0.0 , 200.0 ));
290+ expect (
291+ tester.renderObject <RenderSliverPadding >(find.byType (SliverPadding )).geometry! .paintExtent,
292+ 200.0 ,
293+ );
294+ controller.jumpTo (50.0 );
295+ await tester.pump ();
296+ expect (
297+ tester.renderObject <RenderSliverPadding >(find.byType (SliverPadding )).geometry! .paintExtent,
298+ 150.0 ,
299+ );
300+ });
301+
274302 testWidgets ('Viewport+SliverPadding changing padding' , (WidgetTester tester) async {
275303 await tester.pumpWidget (
276304 Directionality (
@@ -366,7 +394,7 @@ void main() {
366394 ),
367395 ),
368396 );
369- expect (tester.renderObject <RenderSliverPadding >(find.byType (SliverPadding )).afterPadding, 1.0 );
397+ expect (tester.renderObject <RenderSliverPadding >(find.byType (SliverPadding , skipOffstage : false )).afterPadding, 1.0 );
370398 });
371399
372400 testWidgets ('SliverPadding propagates geometry offset corrections' , (WidgetTester tester) async {
0 commit comments