Make sure that an AnimatedGrid doesn't crash in 0x0 environment (#180159)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the AnimatedGrid
widget.
Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
diff --git a/packages/flutter/test/widgets/animated_grid_test.dart b/packages/flutter/test/widgets/animated_grid_test.dart
index bb6253d..151daea 100644
--- a/packages/flutter/test/widgets/animated_grid_test.dart
+++ b/packages/flutter/test/widgets/animated_grid_test.dart
@@ -664,6 +664,32 @@
// Verify that the left/right padding is not applied.
expect(innerMediaQueryPadding, const EdgeInsets.symmetric(horizontal: 30.0));
});
+
+ testWidgets('AnimatedGrid does not crash at zero area', (WidgetTester tester) async {
+ tester.view.physicalSize = Size.zero;
+ final controller = ScrollController();
+ addTearDown(tester.view.reset);
+ addTearDown(controller.dispose);
+ await tester.pumpWidget(
+ Directionality(
+ textDirection: TextDirection.ltr,
+ child: Center(
+ child: AnimatedGrid(
+ controller: controller,
+ itemBuilder: (_, int index, _) => Text('$index'),
+ gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
+ ),
+ ),
+ ),
+ );
+ expect(tester.getSize(find.byType(AnimatedGrid)), Size.zero);
+ await controller.animateTo(
+ 0,
+ duration: const Duration(milliseconds: 250),
+ curve: Curves.easeIn,
+ );
+ await tester.pump();
+ });
}
class _StatefulListItem extends StatefulWidget {