TextField
具有maxLines
属性,该属性定义“绘制”了多少行。但是,当我不知道该属性的值时该怎么办。屏幕不同,我只想将TextField
垂直扩展到最大。
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Expanded(
child: TextField(
keyboardType: TextInputType.multiline,
maxLength: null,
maxLines: 100,
decoration: InputDecoration(border: OutlineInputBorder()),
),
),
Text("My awesome app"),
)
所以在这里,我只是将maxLines
的值设置得足够大,以表明它变得如此之大以至于覆盖了基础的Text小部件。如果值较小,则TextField
也较小,并且不会占用整个可用空间。我该如何实现?
我看到TextField
最近完成了许多工作,尚未发布:https://github.com/flutter/flutter/pull/27205。发行后,我想要实现的目标可能会变得更容易。但是,我现在该怎么办?还是在已经释放的抖动中缺少任何简单的东西?
答案 0 :(得分:0)
如问题中所述,this PR合并后最近变得更加容易。您应该能够使用1.3.12版或更高版本来进行此更改。有关如何将Flutter设置为更高频道的信息,请参见channels docs。
如果您可以使用v。> 1.3.12,请执行以下操作以获取一个文本字段,该文本字段占用所有可用的垂直空间:
TextField(
maxLines: null,
expands: true,
)
答案 1 :(得分:-1)
将Lines
的值设置为0,可以在需要时动态增加添加的行数。缺点是TextField
的高度为1行,并随着行的增加而增加。
答案 2 :(得分:-1)
根据Documentation,将maxLines
的{{1}}属性设置为textField
,以使textField根据其内容设置其高度。