Flutter 颤振文本表单字段向错误文本添加填充

Flutter 颤振文本表单字段向错误文本添加填充,flutter,Flutter,我有这样的表单元素 错误消息的堆栈如下所示 有没有办法在错误文本周围添加小填充? 这是小部件 Card( color: Colors.white.withOpacity(0.9), shadowColor: Colors.grey.withOpacity(0.2), elevation: 15,

我有这样的表单元素

错误消息的堆栈如下所示

有没有办法在错误文本周围添加小填充?

这是小部件

 Card(
                              color: Colors.white.withOpacity(0.9),
                              shadowColor: Colors.grey.withOpacity(0.2),
                              elevation: 15,
                              child: TextFormField(
                                style: TextStyle(
                                  fontSize: _screenFontSize,
                                ),
                                decoration: InputDecoration(
                                    border: InputBorder.none,
                                    prefixIcon: Icon(
                                      Icons.email_outlined,
                                      color: Colors.grey,
                                    ),
                                    hintText: "example@website.com",
                                    labelText: "EMAIL",
                                    labelStyle: TextStyle(color: Colors.grey)),
                                keyboardType: TextInputType.emailAddress,
                                // The validator receives the text that the user has entered.
                                validator: (value) {
                                  if (value == null ||
                                      value.isEmpty ||
                                      !value.contains('@') ||
                                      !value.contains('.')) {
                                    return 'Please enter a valid Email';
                                  }
                                  return null;
                                },
                              ),
                            ),

更新:

如果你对黑客方法很在行,就用下面的错误字符串

return '    Please enter a valid Email\n';

实际解释:

根据当前的实施,这在
flatter
中是不可能的

说明:

如果您检查
TextFormField
的源代码并找到负责呈现错误字符串的
小部件
,您将看到以下文件

flutter/lib/src/material/input_decorator.dart
现在,如果您检查它如何呈现错误消息

if (widget.errorText != null) {
  return Stack(
    children: <Widget>[
      Opacity(
        opacity: 1.0 - _controller.value,
        child: _helper,
      ),
      _buildError(),
    ],
  );
}
现在,如果您注意到正在构建的实际
文本
小部件,您将发现它被包装在
不透明
分馏翻译

现在,
分馏翻译
可能允许我们稍微改变
文本
小部件的位置,但是如果您注意到,
翻译
是硬编码的,可以在
之间设置动画,因此不允许通过任何属性进行更改


不幸的是,这是不可能的。更新:

如果你对黑客方法很在行,就用下面的错误字符串

return '    Please enter a valid Email\n';

实际解释:

根据当前的实施,这在
flatter
中是不可能的

说明:

如果您检查
TextFormField
的源代码并找到负责呈现错误字符串的
小部件
,您将看到以下文件

flutter/lib/src/material/input_decorator.dart
现在,如果您检查它如何呈现错误消息

if (widget.errorText != null) {
  return Stack(
    children: <Widget>[
      Opacity(
        opacity: 1.0 - _controller.value,
        child: _helper,
      ),
      _buildError(),
    ],
  );
}
现在,如果您注意到正在构建的实际
文本
小部件,您将发现它被包装在
不透明
分馏翻译

现在,
分馏翻译
可能允许我们稍微改变
文本
小部件的位置,但是如果您注意到,
翻译
是硬编码的,可以在
之间设置动画,因此不允许通过任何属性进行更改


不幸的是,这是不可能的。可能是我必须做一个自定义错误。谢谢你的回答我很高兴能帮上忙。我在回答中还添加了一种处理此问题的方法。看看,哦。可能是我必须做一个自定义错误。谢谢你的回答我很高兴能帮上忙。我在回答中还添加了一种处理此问题的方法。过来看。