diff --git a/packages/firebase_ui_auth/lib/src/screens/internal/responsive_page.dart b/packages/firebase_ui_auth/lib/src/screens/internal/responsive_page.dart index a4b1794d506e..8a123682a8bd 100644 --- a/packages/firebase_ui_auth/lib/src/screens/internal/responsive_page.dart +++ b/packages/firebase_ui_auth/lib/src/screens/internal/responsive_page.dart @@ -119,6 +119,7 @@ class ResponsivePage extends StatefulWidget { class _ResponsivePageState extends State { final ctrl = ScrollController(); final paddingListenable = ValueNotifier(0); + final key = GlobalKey(); void _onKeyboardPositionChanged(double position) { if (!ctrl.hasClients) { @@ -138,6 +139,11 @@ class _ResponsivePageState extends State { Widget build(BuildContext context) { final breakpoint = widget.breakpoint; + final content = KeyedSubtree( + key: key, + child: widget.child, + ); + return LayoutBuilder( builder: (context, constraints) { if (constraints.biggest.width > breakpoint) { @@ -166,9 +172,7 @@ class _ResponsivePageState extends State { Center( child: ConstrainedBox( constraints: BoxConstraints(maxWidth: breakpoint), - child: IntrinsicHeight( - child: widget.child, - ), + child: IntrinsicHeight(child: content), ), ), ], @@ -198,7 +202,7 @@ class _ResponsivePageState extends State { SliverList( delegate: SliverChildListDelegate.fixed( [ - widget.child, + content, ValueListenableBuilder( valueListenable: paddingListenable, builder: (context, value, _) { @@ -217,7 +221,7 @@ class _ResponsivePageState extends State { child: ListView( shrinkWrap: true, children: [ - widget.child, + content, ], ), );