如何移除Flutter下拉按钮(Dropdown Button)菜单项上下的多余内边距?
你遇到的上下内边距是DropdownButton弹出菜单的默认内边距导致的,直接给DropdownButton添加menuPadding参数就能解决,把它设为EdgeInsets.zero即可消除顶部和底部的多余空白。
修改后的完整代码如下:
Container( decoration: BoxDecoration( borderRadius: const BorderRadius.all(Radius.circular(20)), shape: BoxShape.rectangle, color: HexColor("F1F9F1"), boxShadow: [ BoxShadow( color: HexColor("1E481E").withOpacity(0.15), spreadRadius: 0.5, blurRadius: 2.5, offset: const Offset(1, 2), ), ], ), child: Padding( padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 24), child: DropdownButton<String>( value: dropdownValue, hint: const Text("Select something"), icon: const Icon(Icons.arrow_downward_rounded), borderRadius: const BorderRadius.all(Radius.circular(20)), isDense: true, // 新增这一行,消除菜单上下内边距 menuPadding: EdgeInsets.zero, style: const TextStyle( color: Colors.black, fontSize: 20, ), underline: Container( height: 0, color: Colors.transparent, ), onChanged: (String? value) { setState(() { dropdownValue = value!; }); }, items: list.map<DropdownMenuItem<String>>((String value) { return DropdownMenuItem<String>( value: value, child: Text(value), ); }).toList(), ), ), );
如果需要微调内边距,也可以给EdgeInsets设置具体数值,比如EdgeInsets.symmetric(vertical: 4),根据你的需求调整即可。
内容的提问来源于stack exchange,提问作者dingo
相关产品推荐
相关产品推荐

