Bottom overloaded by 213 pixels in flutter

前端 未结 14 807
面向向阳花
面向向阳花 2021-02-01 02:04

Hi I am trying to create login screen. It is working fine for me. When I open the keyboard then it is giving me an error Bottom overloaded by 213 pixels.

         


        
相关标签:
14条回答
  • 2021-02-01 02:19

    Put your content in to SingleChildScrollView and add a ConstrainedBox and try

    https://api.flutter.dev/flutter/widgets/SingleChildScrollView-class.html

    0 讨论(0)
  • 2021-02-01 02:20
    Scaffold(
      resizeToAvoidBottomInset: false, // set it to false
      ... 
    )
    

    As Andrey said, you may have issues with scrolling, so you may try

    Scaffold(
      resizeToAvoidBottomInset: false, // set it to false
      body: SingleChildScrollView(child: YourBody()),
    )
    
    0 讨论(0)
  • 2021-02-01 02:23

    wrap your column into SingleChildScrollView will solve the problem. Please check this:

     Widget build(BuildContext context) {
        return Scaffold(
            body: Container(
                child: Center(
                    child: SingleChildScrollView(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  TextField(),
                  TextField(),
                ],
              ),
            ))));
      }
    

    And You also use for removing yellow black overflow line

    resizeToAvoidBottomPadding: false 
    

    but in this case, TextField does not move up on click time.

    0 讨论(0)
  • 2021-02-01 02:26

    You can wrap your Fields in single child ScrollView of Flutter.

    0 讨论(0)
  • 2021-02-01 02:28

    Try wrapping your main Column with

    1.(ListView and give property shrinkWrap: true,) List view has property children: [], or

    2.( SingleChildScrollView() )but it has only child: , .

    Something like:

     child: ListView(shrinkWrap: true, children: <Widget>[
                    new Column(children: <Widget>[
                      Container(
                        padding: EdgeInsets.all(120.0),
                        child: Center(
                          child: Icon(
                            Icons.headset_mic,
                            color: Colors.redAccent,
                            size: 50.0,
                          ),
                        ),
                      ),
                      new Row(
                        children: <Widget>[
                          new Expanded(
                            child: new Padding(
                              padding: const EdgeInsets.only(left: 40.0),
                              child: new Text(
                                "EMAIL",
                                style: TextStyle(
                                  fontWeight: FontWeight.bold,
                                  color: Colors.redAccent,
                                  fontSize: 15.0,
                                ),
                              ),
                            ),
                          ),
                        ],
                      ),
                      new Container(
                        width: MediaQuery.of(context).size.width,
                        margin: const EdgeInsets.only(
                            left: 40.0, right: 40.0, top: 10.0),
                        alignment: Alignment.center,
                        decoration: BoxDecoration(
                          border: Border(
                            bottom: BorderSide(
                                color: Colors.redAccent,
                                width: 0.5,
                                style: BorderStyle.solid),
                          ),
                        ),
                        padding: const EdgeInsets.only(left: 0.0, right: 10.0),
                        child: new Row(
                          crossAxisAlignment: CrossAxisAlignment.center,
                          mainAxisAlignment: MainAxisAlignment.start,
                          children: <Widget>[
                            new Expanded(
                              child: TextField(
                                obscureText: true,
                                textAlign: TextAlign.left,
                                decoration: InputDecoration(
                                  border: InputBorder.none,
                                  hintText: 'samarthagarwal@live.com',
                                  hintStyle: TextStyle(color: Colors.grey),
                                ),
                              ),
                            ),
                          ],
                        ),
                      ),
                      Divider(
                        height: 24.0,
                      ),
                      new Row(
                        children: <Widget>[
                          new Expanded(
                            child: new Padding(
                              padding: const EdgeInsets.only(left: 40.0),
                              child: new Text(
                                "PASSWORD",
                                style: TextStyle(
                                  fontWeight: FontWeight.bold,
                                  color: Colors.redAccent,
                                  fontSize: 15.0,
                                ),
                              ),
                            ),
                          ),
                        ],
                      ),
                      new Container(
                        width: MediaQuery.of(context).size.width,
                        margin: const EdgeInsets.only(
                            left: 40.0, right: 40.0, top: 10.0),
                        alignment: Alignment.center,
                        decoration: BoxDecoration(
                          border: Border(
                            bottom: BorderSide(
                                color: Colors.redAccent,
                                width: 0.5,
                                style: BorderStyle.solid),
                          ),
                        ),
                        padding: const EdgeInsets.only(left: 0.0, right: 10.0),
                        child: new Row(
                          crossAxisAlignment: CrossAxisAlignment.center,
                          mainAxisAlignment: MainAxisAlignment.start,
                          children: <Widget>[
                            new Expanded(
                              child: TextField(
                                obscureText: true,
                                textAlign: TextAlign.left,
                                decoration: InputDecoration(
                                  border: InputBorder.none,
                                  hintText: '*********',
                                  hintStyle: TextStyle(color: Colors.grey),
                                ),
                              ),
                            ),
                          ],
                        ),
                      ),
                    ])
                  ]),
    
    0 讨论(0)
  • 2021-02-01 02:29

    you usually need to provide a scroll widget on top of your widgets because if you try to open the keyboard or change the orientation of your phone, flutter needs to know how to handle the distribution of the widgets on the screen.

    Please review this resource, you can check the different options that flutter provide Out of the box, and choose the best option for your scenario.

    https://flutter.io/widgets/scrolling/

    0 讨论(0)
提交回复
热议问题