微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Flutter中更改DropdownButton的高度

如何解决如何在Flutter中更改DropdownButton的高度

如何在Flutter中更改DropdownButton的高度。 我曾尝试使用Padding和SizedBox,但没有一个真正起作用。

SizedBox只是增加了容器的大小,而DropdownButton则被夹在左上方,因此不再居中。 填充将被忽略或将内容移到按钮之外。

我不想更改下拉重叠式广告的大小,而是按钮本身。


build(BuildContext context) {
  return ThemeData(
    data: ThemeData(canvasColor: Colors.white),child: DropdownButton(
      items: _items.map((item) => DropdownMenuItem(child: Text(item),value: item)).toList(),isExpanded: true,selectedItemBuilder: (_) {
        return _items.map<Widget>((String lang) {
          return Center(
            widthFactor: 1,child: Padding(
            padding: const EdgeInsets.symmetric(horizontal: 12),child: Text(lang,style: TextStyle(color: Colors.black))
            ),);
        }).toList();
      }
    )
  )
}

解决方法

将其包装在Container中,根据需要指定高度和宽度,并在isExpanded中将DropDownButton设置为true。还可以根据需要更改下拉按钮的文本字体大小。

Container(
  height: 50.0,width: 200.0,child: DropdownButton(
           value: dropdownValue,icon: Icon(Icons.arrow_downward),iconSize: 24,elevation: 16,isExpanded: true,style: TextStyle(color: Colors.deepPurple,fontSize: 20.0),underline: Container(
             height: 2,color: Colors.deepPurpleAccent,),onChanged: (String newValue) {
             setState(() {
               dropdownValue = newValue;
             });
           },items: <String>['One','Two','Free','Four']
               .map<DropdownMenuItem<String>>((String value) {
             return DropdownMenuItem<String>(
               value: value,child: Text(value),);
           }).toList(),)
)

最终产品应该看起来像这样

enter image description here

,

看起来像DropdownButton类的'itemHeight'属性应该可以解决问题。我尝试过,它增加了我的DropdownButton的高度。

这是我以前的项目中使用itemHeight获得的一些示例代码:

DropdownButton<String>(
      itemHeight: 100.0,value: selectedCurrency,items: dropdownItems,onChanged: (value) {
        setState(() {
          selectedCurrency = value;
          getData();
        });
      },);

注意:请确保您提供的值不小于48.0,因为它会产生错误。

文档: itemHeight属性:https://api.flutter.dev/flutter/material/DropdownButton/itemHeight.html

由“ kMinInteractiveDimension”定义的最小itemHeight: https://api.flutter.dev/flutter/material/kMinInteractiveDimension-constant.html

,

使用 SizedBox 小部件

SizedBox(
      height: 30,child:DropdownButton<String>(
      value: selectedCurrency,onChanged: (value) {},))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。