颤动DropDownButton
将自动缩小到所选最大标签的大小,如下所示:-
但是DropDownButtonFormField
会改变这种行为,而会占用它的整个可用空间。
那么,如何使DropDownButtonFormField
模仿DropDownButton
的空间占用行为?
答案 0 :(得分:0)
我有一个类似的问题,试图使DropDownButtonFormField
在Row
中适合尽可能小的空间。不幸的是,在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
的宽度要求。