有没有办法动态更改Flutter TextField的maxLines?

时间:2017-10-15 23:14:19

标签: textarea textfield flutter

我有一个像这样的TextField:

ValueError: array is too big; `arr.size * arr.dtype.itemsize` is larger than the maximum possible size.

我希望我的TextField开始时new Flexible( fit: FlexFit.loose, child: new Container( alignment: FractionalOffset.topLeft, child: new TextField( decoration: new InputDecoration( hintText: 'Add a note', ), maxLines: 1, onChanged: (value) => _showSaveOptions(value), ), ), ), 设置为1,但是当我输入时,我希望maxLines增加,以便所有文本都保留在页面上我不要向上滚动。但是,我也不想从maxLines设置为5或10开始,因为空TextField会占用更多必要的空间。我想要实现的行为的一个示例是在Google表单中的长答案文本选项中,它以一行开头: enter image description here 并在我输入时展开: enter image description here

我考虑将maxLines设置为每次用户点击换行符时递增的计数器,但如何确定用户何时填写了换行符?

2 个答案:

答案 0 :(得分:20)

Flutter在TextField中支持多线支持。引发issue后,0.0.16版本中添加了多行功能。

确保将flutter升级到最新版本。要使用多行TextField:

new TextField(
    maxLines: null,
    keyboardType: TextInputType.multiline,
) 

希望这有帮助!

答案 1 :(得分:0)

它看起来像一个文本区域。您可以尝试使用 maxLines

  

maxLines:8

TextField(
        maxLines: 8,
        decoration: InputDecoration(hintText: "Enter your text here", border: OutlineInputBorder(),
        labelText: 'Post Body'),
    ),