Flutter中的DropdownButton
根据它所拥有的项目中最大的DropdownMenuItem
来设置它的宽度。如果选择了一个小项目,那么在项目和箭头之间会留下很多白色。我该如何使按钮缩放到刚好适合所选项目的宽度呢?
我尝试使用Expanded
,一些Flexible
的东西,我仍然不能使它改变它的宽度。
DropdownButton(
value: null,
hint: Text("Small text"),
items: ..., //Text widgets that have more text and are larger than the hint
)
我试图去掉hint
和箭头之间的空格:
6条答案
按热度按时间hrirmatl1#
宽度实际上是由selectedItemBuilder参数提供的最宽项决定的(如果没有定义,它将使用这些项)。
示例中的selectedItemBuilder生成一个重复项的列表(对应于所选值的项),您需要一个有状态的小部件来处理该值。
gg0vcinb2#
用
ButtonTheme
Package 下拉按钮,并添加alignedDropdown = true
,如下所示:alignedDropdown会将菜单项的宽度与按钮相匹配。然后我们需要特定的宽度,所以用SizedBox或Container Package ButtonTheme:
wqlqzqxt3#
这是可行的:
ltskdhd14#
如果我理解正确的话,那么我也遇到过这个问题,并且我有一个解决方案。简单地创建一个Wrap小部件作为DropdownButton的父控件。它将使下拉菜单按照值的大小换行(不确定它对空值的React)
rqqzpn5f5#
使用DropdownButtonHideUnderline删除下划线扭曲下拉框
1rhkuytd6#
我设法通过定义
alignment: Alignment.centerRight
删除了空白。默认情况下,对齐方式设置为Alignment.centerStart
,这将强制文本开始对齐,而图标设置为结束对齐。因此,通过将文本居中向右对齐,它将填充文本和图标之间的空白。完整代码示例: