单击时TextFormField消失

时间:2019-02-11 05:17:23

标签: dart flutter flutter-layout

我有从用户那里获取信息的表格。但是当我点击TextFormField并显示键盘时,它消失了。

https://youtu.be/UhVL2hqWOlQ

这是我的代码:

class _AddInfoState extends State<AddInfo>{

  static final GlobalKey<FormState> _key = new GlobalKey();
  bool _validate = false;
  String strTitle;
  File fileImage;

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      body:new Container(
        child: new Form(
          key: _key,
          autovalidate: _validate,
          child: formUI(),
        ),
      ),
    );
  }

  Widget formUI(){
    return new ListView(
      children: <Widget>[
        //Title Field
        new Container(
          padding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 0.0),
          child:new TextFormField(
            style: styleTextField,
            keyboardType: TextInputType.text,
            autofocus: true,
            maxLength: 45,
            decoration: InputDecoration(
                hintText: 'Enter Title',
                prefixIcon: Icon(
                  Icons.title,
                  size: 30.0,
                  color: blueColor,
                )
            ),
            validator: validateTitle,
            onSaved: (String val) {
              strTitle = val;
            },
          ),
        ),                
      ],
      physics: new ClampingScrollPhysics(),
    );
  }

3 个答案:

答案 0 :(得分:0)

将在Container中包含TextFormField的{​​{1}}包裹起来:

SizedBox

答案 1 :(得分:0)

根据我对视频的了解,由于您在表单中使用了可滚动的p = wikipedia.page('Category:Enzyme inhibitors') parents = p.categories ,因此一旦键盘出现,列表就会向上滚动,从而消失。

尝试在脚手架中设置ListView。这将使键盘显示为覆盖图,并且不会向上推内容。

示例:

resizeToAvoidBottomPadding: false

让我知道这是否有帮助!

答案 2 :(得分:0)

设置resizeToAvoidBottomPadding: false,然后将Column更改为ListView