【发布时间】:2018-08-06 01:27:06
【问题描述】:
我有一个 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),
),
【问题讨论】:
-
你在哪里声明了 _formKey 变量?
-
我在与类属性/变量相同的类中声明了上面的 _formKey var。
-
@Amit 您需要使您的构建方法纯粹.. 键盘打开和关闭可以再次调用构建方法并因此呈现您的小部件。