如何在Flutter中包装TextFormField验证器消息?

时间:2019-11-09 12:37:01

标签: flutter

我想增加验证器消息的长度,同时保持文本字段本身的宽度相同。理想情况下,它只会绕到第二行,但我不知道如何实现。

这是我目前的实现方式。

Expanded(
                              flex: 1,
                              child: TextFormField(
                                controller: shortNameController,
                                decoration: InputDecoration(hintText: 'SHRT'),
                                textAlign: TextAlign.center,
                                textCapitalization: TextCapitalization.characters,
                                inputFormatters: [
                                  WhitelistingTextInputFormatter(
                                      RegExp('[A-Za-z0-9]')),
                                  LengthLimitingTextInputFormatter(4),

                                ],
                                validator: (value) {
                                  if (value.isEmpty) {
                                    return 'Enter your team\'s short name';
                                  } else if (value.length < 3) {
                                    return 'Must be at least 3 characters';
                                  }
                                  return null;
                                },
                              )),

2 个答案:

答案 0 :(得分:1)

errorMaxLines中使用InputDecoration(),如下所示:

TextFormField(
  controller: shortNameController,
  decoration: InputDecoration(
    hintText: 'SHRT',
    errorMaxLines: 3, // number of lines the error text would wrap 
  ),

  // other parameters

  validator: (value) {
    if (value.isEmpty) {
      return 'Enter your team\'s short name';
    } else if (value.length < 3) {
      return 'Must be at least 3 characters';
    }
    return null;
  },
)

答案 1 :(得分:0)

您可以在验证器消息中使用换行符转到下一行

“必须至少3个字符”;

结果将是:

Must be at least 3
characters.