@@ -271,6 +271,34 @@ void main() {
271
271
expect (tester.renderObject <RenderBox >(find.text ('x' )).localToGlobal (Offset .zero), const Offset (0.0 , 200.0 ));
272
272
});
273
273
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
+
274
302
testWidgets ('Viewport+SliverPadding changing padding' , (WidgetTester tester) async {
275
303
await tester.pumpWidget (
276
304
Directionality (
@@ -366,7 +394,7 @@ void main() {
366
394
),
367
395
),
368
396
);
369
- expect (tester.renderObject <RenderSliverPadding >(find.byType (SliverPadding )).afterPadding, 1.0 );
397
+ expect (tester.renderObject <RenderSliverPadding >(find.byType (SliverPadding , skipOffstage : false )).afterPadding, 1.0 );
370
398
});
371
399
372
400
testWidgets ('SliverPadding propagates geometry offset corrections' , (WidgetTester tester) async {
0 commit comments