Flutter 文本字段';s输入的文本在变满后对半剪切?

Flutter 文本字段';s输入的文本在变满后对半剪切?,flutter,flutter-layout,Flutter,Flutter Layout,我试图添加一封电子邮件,这是一封长文本,但当文本字段变满时,它将所有文本一分为二。 这是我的密码: Container( height: 45, decoration: BoxDecoration( color: HexColor(MyColors.white), ), child: TextFormField( controller:

我试图添加一封电子邮件,这是一封长文本,但当文本字段变满时,它将所有文本一分为二。 这是我的密码:

        Container(
            height: 45,
            decoration: BoxDecoration(
            color: HexColor(MyColors.white),
            ),
            child: TextFormField(
            controller: _email,
            maxLength: 100,                        
           autofocus: true,
           validator: validateEmail,
           keyboardType: TextInputType.emailAddress,
           decoration: InputDecoration(
           labelText: 'Email',
           counterText: "",
           border: OutlineInputBorder(),
          ),
         ),
       ),

我认为您的问题是因为您以错误的方式使用了
容器
,因此您的
容器
覆盖了您的
文本表单字段
。因此,在我看来,您可以使用
容器
,但属性最少,或者根本不使用属性。但是,我更喜欢不使用
容器

此外,如果希望它非常长,还可以将
maxLines
添加为
null

您的代码应该如下所示:

TextFormField(
            maxLines: null,
            controller: _email,
            maxLength: 100,
            autofocus: true,
            validator: validateEmail,
            keyboardType: TextInputType.emailAddress,
            decoration: InputDecoration(
              labelText: 'Email',
              counterText: "",
              border: OutlineInputBorder(),
            ),
            style: TextStyle(
              color: Colors.black,
            ),
          ),
此外,您可以在以后自行改进设计。
(注意:在我的代码中,我没有使用
容器

我明白你的意思。。你的问题是文字被抬高了。。你可以设置

只需调整contentPadding上下,使其居中即可

decoration: InputDecoration(
                 contentPadding:
                  const EdgeInsets.only(
                  left: 8.0,
                  bottom: 8.0,
                  top: 8.0)),```

实际上,文本字段的默认高度比我想要的要大,因此,要使高度变小,我必须使用容器或大小框。即使移除了容器,文本仍然被切成两半。嗯,这很奇怪。我已经成功地使
TextFormField
不被切成两半。它起作用了。谢谢:)它确实有用。谢谢:)装饰:输入装饰(contentPadding:const-EdgeInsets.all(0.0)),为我解决了这个问题