Есть ли способ уменьшить высоту виджета TextFormField в Flutter - PullRequest
0 голосов
/ 28 февраля 2020

Это код одного 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;
        },
      ),
    );
  }

enter image description here

1 Ответ

0 голосов
/ 28 февраля 2020

Если вы хотите изменить высоту SizedBox и, следовательно, FormField при запуске проверки, вам необходимо:

1) Убедитесь, что вы используете StatefulWidget, а не StatelessWidget.

2) Используйте переменную, назовите ее _textFormFieldHeight и присвойте ее начальной высоте, например:

int _textFormFieldHeight = 35

return SizedBox(
      height: _textFormFieldHeight,

Всякий раз, когда ваш код проверки срабатывает (где-то в _validateFirstName, вызовите : setState(() => _textFormFieldHeight = 15);

И это должно сработать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...