When the keyboard appears, the Flutter widgets resize. How to prevent this?

后端 未结 9 1283
灰色年华
灰色年华 2020-12-02 05:51

I have a Column of Expanded widgets like this:

 return new Container(
      child: new Column(
        crossAxisAlignment: CrossAxisAlignment.stretch,
               


        
9条回答
  •  一向
    一向 (楼主)
    2020-12-02 06:51

    Most other answers suggest using resizeToAvoidBottomPadding=false. In my experience this allows the keyboard to cover up text fields if they are underneath where the keyboard would appear.

    My current solution is to force my column to be the same height as the screen, then place it in a SingleChildScrollView so that Flutter automatically scrolls my screen up just enough when the keyboard is used.

    Widget build(BuildContext context) {
      return Scaffold(
        body: SingleChildScrollView(
          physics: NeverScrollableScrollPhysics(),
          child: ConstrainedBox(
            constraints: BoxConstraints(
              minWidth: MediaQuery.of(context).size.width,
              minHeight: MediaQuery.of(context).size.height,
            ),
            child: IntrinsicHeight(
              child: Column(
                mainAxisSize: MainAxisSize.max,
                children: [
                  // CONTENT HERE
                ],
              ),
            ),
          ),
        ),
      );
    }
    

    I use NeverScrollableScrollPhysics so that the user cannot scroll around themselves.

提交回复
热议问题