Flutter移除DropDownButton底部下划线

10

我有一个下拉菜单,它位于应用程序栏中。然而,它似乎默认带有下划线。Flutter文档说默认为0.0,但这不可能是情况,因为我能看到下划线。我该如何移除这个下划线?

return Container(
  decoration: BoxDecoration(
    color: Colors.white,
    borderRadius: BorderRadius.all(Radius.circular(30)),
  ),
  margin: EdgeInsets.all(10.0),
  padding: EdgeInsets.all(5.0),
  width: MediaQuery.of(context).size.width * 0.30,
  child: Center(
    child: DropdownButton(
      items: _dropdownValues.map((value) => DropdownMenuItem(child: Text(value), value: value)).toList(),
        onChanged: (String value) {
          setState(() {
            _currentlySelected = value;
          });
        },
      isExpanded: false,
      value: _currentlySelected,
    )
  )
); 

设计:

输入图片描述

3个回答

37
我成功找到了答案。Flutter有一个非常有用的DropdownButtonHideUnderline,我只需要将DropdownButton包裹在其中即可。 代码:
return Container(
    decoration: BoxDecoration(
        color: Colors.white,
        borderRadius: BorderRadius.all(Radius.circular(30)),
    ),
    margin: EdgeInsets.all(10.0),
    padding: EdgeInsets.all(5.0),
    width: MediaQuery.of(context).size.width * 0.30,
    child: Center(
        child: DropdownButtonHideUnderline(
            child: DropdownButton(
                items: _dropdownValues.map((value) => DropdownMenuItem(child: Text(value), value: value)).toList(),
                onChanged: (String value) {
                setState(() {
                    _currentlySelected = value;
                });
                },
                isExpanded: false,
                value: _currentlySelected,
            )
        )
    )
);

下划线:在我的情况下容器颜色无法工作,如何更改Flutter中下拉按钮的下划线颜色。 - s.j
@s.j 你需要指定容器的高度或宽度,这样代码才能正常工作。下划线: Container(color:Colors.red, height: 2.0) - The mentalist Coder

9

另一种选择是使用DropdownButton的下划线构造器,并将颜色设置为透明。

underline: Container(color: Colors.transparent),

在你的情况下:
child: DropdownButton(
    items: _dropdownValues.map((value) => DropdownMenuItem(child: Text(value), value: value)).toList(),
    onChanged: (String value) {
    setState(() {
        _currentlySelected = value;
    });
    },
    isExpanded: false,
    underline: Container(color: Colors.transparent),
    value: _currentlySelected,
)

更简单的方式:下划线:Container()。 - Ketobomb

2
另一个选项是:
 underline: SizedBox(),

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接