允许小部件空间扩展到

时间:2021-07-26 11:13:15

标签: flutter

我正在 Flutter 中构建一个表单,我已经找到了一些解决方案来满足我的需求,但感觉不太对。

我希望能够做的是为表单字段提供一个边距,它可以在不改变包围小部件的边距所占用的空间的情况下扩展到该边距。我想这样做的原因是,当显示验证器错误文本时,flutter 表单字段会改变高度。

我目前找到的解决方案是使用具有指定高度的容器,该高度足以让 TextFormField 在显示错误文本时展开:

return Container(
      height: 100,
      child: TextFormField(
        decoration: InputDecoration(labelText: label),
        validator: (_) => 'Placeholder error text'
      ),
    );

它有效,但我不太喜欢这个解决方案,因为您必须提前知道 TextFormField 展开后会有多高。因此,例如,如果 maxLines 属性更改为 10,那么您还必须弄乱容器高度,直到找到适合它的高度。

是否有一种解决方案可以让您提供一些多余的空间,小部件可以在不改变总高度或多余空间加上小部件高度的情况下扩展到其中?

1 个答案:

答案 0 :(得分:0)

尝试将文本表单字段包装在一个灵活的小部件中。

return Column(
   children: <Widget>[
   Flexible(
    child:Padding(
      padding: const EdgeInsets.all(8.0),    
      child: TextFormField(
        decoration: InputDecoration(labelText: label),
        validator: (_) => 'Placeholder error text'
      ),
     ),
    ),
   ],
  );