flutter - Flutter 中如何解析数据列表项下拉列表
问题描述
我有代码下拉菜单,但我将解析列表项以制作下拉菜单模板,因此我只需更改列表项部分。
child: DropdownButton<String>(
isExpanded: true,
icon: Icon(Icons.keyboard_arrow_down),
value: dropdownValue,
onChanged: (String newValue) {
setState(() {
dropdownValue = newValue;
});
},
items: <String>['Instagram', 'Two', 'Free', 'Four']
.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
解决方案
这是你想要做的吗?
class DropDownTest extends StatefulWidget {
@override
_DropDownTestState createState() => _DropDownTestState();
}
class _DropDownTestState extends State<DropDownTest> {
MenuItem dropdownValue;
@override
Widget build(BuildContext context) {
return DropdownButton<MenuItem>(
isExpanded: true,
icon: Icon(Icons.keyboard_arrow_down),
value: dropdownValue,
onChanged: (MenuItem newValue) {
setState(() {
dropdownValue = newValue;
});
},
items: items.map<DropdownMenuItem<MenuItem>>((MenuItem value) {
return DropdownMenuItem<MenuItem>(
value: value,
child: Text(value.name),
);
}).toList());
}
}
class MenuItem {
final int id;
final String name;
const MenuItem(this.id, this.name);
}
const List<MenuItem> items = [
MenuItem(1, 'ONE'),
MenuItem(2, 'TWO'),
MenuItem(3, 'THREE'),
MenuItem(4, 'FOUR'),
];
推荐阅读
- java - JPA:外键作为 NamedQuery 中的参数
- c - 接收十六进制值并将其保存到数组 [STM32]
- tfs - Azure DevOps 迁移如何修复错误 VS403300
- vba - 如何安排宏,并继续尝试直到满足条件?
- historian - Proficy Historian RestAPI - 使用包含“#”的标签检索插值数据
- c - 我应该如何避免与 C 中包含的库发生命名冲突?
- javascript - Ajax 请求返回 '200 OK'
- jquery - 根据按钮的属性值添加/删除 css 类
- python - 如何使帖子标题在我的模板中可用
- transactions - 矿工之间交易的有效性冲突