Flutter 中是否可以更改 DropdownMenuItem 的大小?

问题描述 投票:0回答:3

我有一个下拉按钮,打开时看起来像这样。

enter image description here

是否可以将其缩小以适应文字?

这是我的下拉按钮:

      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()),
      ),

我尝试将其包装在大小合适的盒子中,包括按钮和菜单项,但它不起作用。我在文档中找不到任何参数来帮助我。有什么想法吗?

flutter
3个回答
1
投票

尝试用容器包装您的下拉菜单并设置宽度希望对您有帮助

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()),
      ),
    ),

结果-> image


0
投票

你可以像下面这样做。

 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()),
              // },
            ) ,
          )

0
投票

要单独更改每个菜单项而不是按钮的高度,只需将

itemHeight: null
作为参数传递给
DropdownButton
,并在每个
DropdownMenuItem
的子级中,用
SizedBox
/
Container
包裹它并指定所需的高度。

如果要更改菜单的宽度,可以使用

menuWidth
中提供的
DropdownButton
参数。

© www.soinside.com 2019 - 2024. All rights reserved.