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)),为我解决了这个问题