Flutter TextFormField聚焦时会重新加载当前屏幕

Ami*_*raj 7 dart flutter

我有一个TextFormField,当我点击它以输入文本时会重新加载当前屏幕。当我点击表单域时,在重新加载整个屏幕并再次呈现所有小部件之前,会短暂显示软件键盘。我正在Android设备上运行该应用程序。

Container(
        child: Form(
          key: _formKey,
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: <Widget>[
              TextFormField(
                validator: (value) {
                  if (value.isEmpty) {
                    return 'Your input cannot be empty';
                  }
                },
              ),
              Padding(
                padding: const EdgeInsets.symmetric(vertical: 16.0),
                child: RaisedButton(
                  onPressed: () {

                    if (_formKey.currentState.validate()) {
                      print('validated');
                    }
                  },
                  child: Text('Save'),
                ),
              ),
            ],
          ),
        ),
        margin: EdgeInsets.only(top:8.0),
  ),
Run Code Online (Sandbox Code Playgroud)

小智 2

问题是,当您单击该字段时,TextFormField 的控制器会重建,这就是问题的原因。

因此,为了解决这个问题,您是否尝试创建一个 Statefull 小部件,然后在此小部件的 State 中创建一个 TextEditingController 并将其作为参数传递给 TextFormField ?