以下是我的代码:

        child: new Row(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        mainAxisAlignment: MainAxisAlignment.start,
                        children: <Widget>[
                          new Icon(
                              Icons.call
                          ),
                          new Container(
                            height: 30.0,
                            width: 100.0,
                            child: new TextFormField(
                              decoration: new InputDecoration(
                                  labelText: 'User Name'),
                              validator: (val) =>
                              !val.contains('@')
                                  ? 'Not a valid email.'
                                  : null,
                              onSaved: (val) => _email = val,
                            ),

                          )

                        ],

                      ),
                    )

在这里,Icon和TextFormField没有垂直对齐.TextFormField为其自身提供页边距顶部,并稍微向下移动到电话图标.

推荐答案

问题是TextFormField本身会增加一些填充.由于您只想对齐图标,您可能应该将其添加到您的InputDecoration中,并且您可以完全放弃使用Row;您也可以稍微将其向下移动一点,以使其与文本输入底部带有大约Padding的下划线一致:

new TextFormField(
  decoration: const InputDecoration(
      labelText: 'User Name',
      icon: const Padding(
          padding: const EdgeInsets.only(top: 15.0),
          child: const Icon(Icons.call))),
  validator: (val) =>
      !val.contains('@') ? 'Not a valid email.' : null,
  onSaved: (val) => _email = val,
),

如果你想让它像Ffltter认为的那样对齐,你可以跳过Padding,但我怀疑你可能仍然不满意它默认的位置这么高.

Dart相关问答推荐

Flutter - 对 Cloud Firestore 进行排序

Dart:使用正则表达式从字符串中删除空格

Flutter | Dart:URI的目标不存在

从 PopupMenuItem 中删除填充(overflow menu)

Flutter - 可以在没有 Firebase 的情况下使用 Google 登录吗?

如何在 Dart 中创建画布元素?

结合freezed和hive

在小部件之间画一条线

Flutter:将照片或图像显示为模态弹出窗口

如何将圆形边框设置为flutter上的MaterialButton?

Flutter 如何移动文件

Dart/Flutter 如何在 map 中初始化列表?

Flutter-在屏幕上绘制图形

更改底片的灰色覆盖背景

在 Flutter 中推送新页面时,Navigator 堆栈上的页面会重建

Dart/Flutter 中的=>(箭头)是什么意思?

Opa vs Dart vs Haxe vs CoffeeScript

如何将条目添加到列表中的特定索引?

轻松判断数字是否在 Dart 的给定范围内?

如何在 Dart 中以正确的方式重定向和重新加载?