Search code examples
flutterflutter-layoutflutter-layoutbuilder

Flutter: overflowed by Infinty Pixels on the buttom ( Below is the code


RenderPhysicalModel object was given an infinite size during layout. The relevant error-causing widget was Scaffold package:financy/Authentication/verify_email_page.dart:66 ════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════ A RenderFlex overflowed by Infinity pixels on the bottom. The relevant error-causing widget was Column ════════════════════════════════════════════════════════════════════════════════

  class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final user = FirebaseAuth.instance.currentUser!;
    return Scaffold(
      appBar: AppBar(
        title: Text('Home'),
      ),
      body: Padding(
        padding: EdgeInsets.all(32),
        child: Builder(builder: (context) {
          return Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(
                'Signed in as',
                style: TextStyle(fontSize: 16),
              ),
              SizedBox(
                height: 8,
              ),
              Text(
                user.email!,
                style:
                    TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
              ),
              SizedBox(
                height: 40,
              ),
              ElevatedButton.icon(
                style: ElevatedButton.styleFrom(
                  minimumSize: Size.fromHeight(50),
                ),
                icon: Icon(
                  Icons.arrow_back,
                  size: 32,
                ),
                label: Text(
                  'Sign Out',
                  style: TextStyle(fontSize: 24),
                ),
                onPressed: () => FirebaseAuth.instance.signOut(),
              )
            ],
          );
        }),
      ),
    );
  }
}

Solution

  • You need to wrap you scaffold Body with single child scroll view like below -

    class HomePage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        final user = FirebaseAuth.instance.currentUser!;
        return Scaffold(
          appBar: AppBar(
            title: Text('Home'),
          ),
          body: SingleChildScrollView(
            child: Padding(
              padding: EdgeInsets.all(32),
              child: Builder(builder: (context) {
                return Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: [
                    Text(
                      'Signed in as',
                      style: TextStyle(fontSize: 16),
                    ),
                    SizedBox(
                      height: 8,
                    ),
                    Text(
                      user.email!,
                      style:
                      TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
                    ),
                    SizedBox(
                      height: 40,
                    ),
                    ElevatedButton.icon(
                      style: ElevatedButton.styleFrom(
                        minimumSize: Size.fromHeight(50),
                      ),
                      icon: Icon(
                        Icons.arrow_back,
                        size: 32,
                      ),
                      label: Text(
                        'Sign Out',
                        style: TextStyle(fontSize: 24),
                      ),
                      onPressed: () => FirebaseAuth.instance.signOut(),
                    )
                  ],
                );
              }),
            ),
          ),
        );
      }
    }