如何使DropdownButtonFormField占用尽可能小的空间?

时间:2019-04-24 12:47:55

标签: user-interface dart flutter

颤动DropDownButton将自动缩小到所选最大标签的大小,如下所示:-

enter image description here

但是DropDownButtonFormField会改变这种行为,而会占用它的整个可用空间。

enter image description here

那么,如何使DropDownButtonFormField模仿DropDownButton的空间占用行为?

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题,试图使DropDownButtonFormFieldRow中适合尽可能小的空间。不幸的是,在InputDecorator内部使用的DropDownButtonFormField小部件不支持可以设置自己宽度的子级(例如DropDownButton),并且要求maxWidth由父级设置上限

我设法使用IntrinsicWidth小部件使其工作(警告:根据文档,此小部件相对昂贵,因为它在最后的布局阶段之前添加了推测性的布局传递):

Row(
  crossAxisAlignment: CrossAxisAlignment.end,
  children: [
    IntrinsicWidth(
        child: DropdownButtonFormField<String>(
          value: "1",
          items: [
            DropdownMenuItem(
              value: "1",
              child: Text("1"),
            ),
            DropdownMenuItem(
              value: "2",
              child: Text("2"),
            ),
          ],
          onChanged: _onCurrencyChanged,
        )),
  ],
)                                         

IntrinsicWidth将子元素的宽度设置为子元素的最大固有宽度,以满足InputDecorator的宽度要求。