我有一个下拉按钮,打开时看起来像这样。
是否可以将其缩小以适应文字?
这是我的下拉按钮:
DropdownButton<dynamic>(
value: state.locale.languageCode,
items: [
DropdownMenuItem(
value: 'EN',
child: SizedBox(
child: Text(
'EN',
),
),
),
DropdownMenuItem(
value: 'DE',
child: SizedBox(
child: Text(
'DE',
),
),
),
],
onChanged: (newValue) {
dropdownCallback(newValue, state);
},
underline: DropdownButtonHideUnderline(child: Container()),
),
我尝试将其包装在大小合适的盒子中,包括按钮和菜单项,但它不起作用。我在文档中找不到任何参数来帮助我。有什么想法吗?
尝试用容器包装您的下拉菜单并设置宽度希望对您有帮助
Container(
width: 25,
child: DropdownButton<dynamic>(
isExpanded: true,
items: [
DropdownMenuItem(
value: 'EN',
child: Text(
'EN',
),
),
DropdownMenuItem(
value: 'DE',
child: Text(
'DE',
),
),
],
onChanged: (newValue) {},
underline: DropdownButtonHideUnderline(child: Container()),
),
),
你可以像下面这样做。
Container(
width: 45,
child: DropdownButton<dynamic>(
value: "EN",
itemHeight: 50.0,
isExpanded: true,
items: [
DropdownMenuItem(
value: 'EN',
child: SizedBox(
child: Text(
'EN',
),
),
),
DropdownMenuItem(
value: 'DE',
child: SizedBox(
child: Text(
'DE',
),
),
),
],
onChanged: (newValue) {
// dropdownCallback(newValue, state);
},
underline: DropdownButtonHideUnderline(child: Container()),
// },
) ,
)
要单独更改每个菜单项而不是按钮的高度,只需将
itemHeight: null
作为参数传递给 DropdownButton
,并在每个 DropdownMenuItem
的子级中,用 SizedBox
/Container
包裹它并指定所需的高度。
如果要更改菜单的宽度,可以使用
menuWidth
中提供的 DropdownButton
参数。