首页 > 解决方案 > Flutter:无法允许用户输入

问题描述

正常情况

在此处输入图像描述


键盘打开时

它显示溢出错误

在此处输入图像描述


resizeToAvoidBottomInset包含时

TextField 隐藏在键盘下方

在此处输入图像描述


代码:

void main() => runApp(MaterialApp(home: HomePage()));

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      // resizeToAvoidBottomInset: false, // including this hides TextField beneath Keyboard
      body: Column(
        children: <Widget>[
          FlutterLogo(size: 500),
          TextField(decoration: InputDecoration(hintText: "  Enter something here ...")),
          Expanded(child: FlutterLogo(size: 300)),
        ],
      ),
    );
  }
}

编辑:

我想要的是TextField当它处于焦点时应该自动向上滚动,这也意味着 FlutterLogo1 也应该向上滚动并且 FlutterLogo2 应该在键盘下方。(这在原生 Android 中是非常常见的行为,一切都为您处理)

标签: dartflutter

解决方案


我认为这会奏效。


void main() => runApp(MaterialApp(home: HomePage()));

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      // resizeToAvoidBottomInset: false, // including this hides TextField beneath Keyboard
      body: Stack(
        children: <Widget>[
          FlutterLogo(size: 500),
          Column(children: <Widget>[
            Container(
                margin: EdgeInsets.fromLTRB(0.0, 200.0, 0.0, 0.0),
                child: TextField( decoration: InputDecoration(hintText: "  Enter something here ..."))),
            Expanded(child: FlutterLogo(size: 300)),
          ],)

        ],
      ),
    );
  }
}


推荐阅读