这是一个TextFormField
的代码,该代码包装在SizedBox
小部件中,用于设置TextFormField
的高度,但在TextFormField
下方显示验证消息时会缩小。
Widget _firstNameField() {
return SizedBox(
height: 35,
child: TextFormField(
keyboardType: TextInputType.text,
validator: _validateFirstName,
onFieldSubmitted: (value) {
FocusScope.of(contextenter code here).requestFocus(lastNameFocusNode);
},
onSaved: (value) {
_firstName = value;
},
),
);
}
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9WbVkxZWwucG5nIn0=” alt =“在此处输入图像描述”>
如果要更改SizedBox的高度,从而触发验证时的FormField,则需要:
1)确保您使用的是StatefulWidget,而不是StatelessWidget。
2)使用变量,将其命名为_textFormFieldHeight
,并将其分配给您的初始高度,如下所示:
int _textFormFieldHeight = 35
return SizedBox(
height: _textFormFieldHeight,
无论何时触发您的验证码(在_validateFirstName
中的某个位置,请致电:setState(() => _textFormFieldHeight = 15);
这应该可以解决问题!