forms - 表单验证会破坏小部件的对齐方式

标签 forms flutter validation flutter-layout alignment

我已经使用 Flutter 实现了简单的表单,并且还实现了带有消息的表单验证。旁边有 TextFormFieldIconButton

Row(
                children: [
                  Expanded(
                    child: TextFormField(
                      key: Key('new_event_address'),
                      autofocus: false,
                      initialValue: widget.address,
                      decoration: InputDecoration(
                        hintText: "",
                        contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
                        border: OutlineInputBorder(borderRadius: BorderRadius.circular(5.0)),
                        focusedBorder: OutlineInputBorder(
                          borderSide: const BorderSide(color: Colors.black26, width: 2.0),
                          borderRadius: BorderRadius.circular(5.0),
                        ),
                      ),
                      onSaved: (value) => setState(() => _address = value),
                      validator: (val) => val.length == 0 ? CustomResources.strings["add_event_validation_address_required"] : null,
                    ),
                  ),
                  Padding(padding: EdgeInsets.only(right: 5)),
                  IconButton(
                    icon: const Icon(Icons.add_location_outlined),
                    onPressed: () {},
                  )
                ],
              )

它看起来应该是 - 带有图标按钮的文本字段: enter image description here

但是当验证错误时,图标按钮对齐不正确: enter image description here

我认为这是因为 TextFormField 更改了其位置以显示验证错误消息,但 IconButton 位置保持不变,因此它不再正确对齐,即使放置在相同的 Row 容器。

如何解决这个问题?你有什么想法吗?

最佳答案

您只能在 Row 中添加 crossAxisAlignment: CrossAxisAlignment.start,。它看起来像这样:

enter image description here

关于forms - 表单验证会破坏小部件的对齐方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69158664/

相关文章:

html - 包装 Label 和 Input 元素的最佳方式是什么

javascript - v2.login 不是函数

flutter - ListView.builder 给出错误 : RenderBox was not laid out

flutter - 带有Flutter/Dart插件的IntelliJ中的代码完成起初给出了错误的建议

javascript - 从表单外部链接提交表单

flutter - 状态管理和全局变量

grails - 创建自定义验证器

javascript - 如果表单组中的任何一个有效,则删除表单中必需的所有属性

java - 在 Spring Boot Data REST 中进行实体验证后运行 @HandleBeforeCreate

javascript - 通过输入表单查询 MongoDB