我想创建一个漂亮的DropDownButton
。不幸的是,这似乎相当困难。虽然设计很好,但每当我想选择一个不同的项目时,列表就会以一种非常丑陋的方式落在选择的上方。下面是当前版本的图片。
在此之后:
下面是我的代码:
var _repeats = ["Einmalig", "Wiederholen:"];
String _initRepeat = "Einmalig";
FormField<String>(
builder: (FormFieldState<String> state) {
return Container(
decoration: BoxDecoration(
color: Color.fromRGBO(204, 204, 204, 1.0),
border: Border.all(color: Colors.black),
borderRadius: BorderRadius.circular(15),
),
child: Padding(
padding: const EdgeInsets.only(left: 8.0, right: 8.0,),
child: DropdownButton<String>(
dropdownColor:
Color.fromRGBO(204, 204, 204, 1.0),
alignment: AlignmentDirectional.center,
value: _initRepeat,
isDense: true,
onChanged: (String? newValue) {
setState(() {
_initRepeat = newValue!;
state.didChange(newValue);
});
},
items: _repeats.map((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(
value,
style: TextStyle(
color: Colors.black,
fontSize: 12.0,
),
),
);
}).toList(),
),
),
);
},
),
有没有人有关于如何改进这一点的建议?我基本上想要的选择是平滑的低于当前选择的值。非常感谢!
发布于 2021-12-03 07:24:17
我已经从当前版本的Flutter的DropdownButton创建了一个自定义的DropdownButton,并使其更具可定制性。它很容易,简单,你可以在按钮下面有稳定的下拉菜单“只要可能”,没有任何问题和许多其他功能描述的包。此外,我还向DropdownButtonFormField2添加了相同的功能,并添加了将按钮用作弹出菜单按钮的功能,以及在项目后添加分隔符的功能。我已经测试得很好了,它就像一个护身符!
您可以使用该包或直接使用GitHub上的源文件。此外,我还在包中添加了自定义小部件,您可以自定义整个应用程序的默认DropdownButton2
小部件,只需几行代码即可使用,如示例所示。
存储库(GitHub): DropdownButton2
https://stackoverflow.com/questions/69289348
复制相似问题