在 DropDownButton 中使用动态列表 |扑
Posted
技术标签:
【中文标题】在 DropDownButton 中使用动态列表 |扑【英文标题】:Use dynamic list in DropDownButton | Flutter 【发布时间】:2021-11-04 04:04:02 【问题描述】:我的问题如下:
class Data
final String? image, title, link;
final Color? color;
Data(
this.title,
this.image,
this.link,
this.color,
);
List dataList = [
Data(
title: "XXX",
image: "XXX",
link: "XXX",
color: XXX),
...
我有这个类和列表来存储我的数据,但是我第一次使用这种方式来学习新东西。现在我遇到的问题是我完全无法使用列表中的数据创建一个 DropDownButton,因为我在那里有 Data()。
我尝试过这样的事情:
@override
Widget build(BuildContext context)
return Container(
child: Center(
child: DropdownButton<String>(
items: dataList.map((Map map)
return new DropdownMenuItem<String>(
value: map["title"].toString(),
child: new Text(
map["name"],
),
);
).toList(),
),
),
);
但我确信此选项不适用于我的示例。我想现在有办法向你寻求帮助。所以我的确切问题是,如何创建一个 DropDownMenu/Button,我的所有数据类的标题都显示在列表中。感谢您的帮助,谢谢。
【问题讨论】:
您想从 API 中获取数据并将其显示到下拉列表中吗? 我想在该下拉菜单中显示我的 dataList 中我的数据项的每个标题。请参阅第一个代码部分。所以每个标题都应该显示“XXX”。 【参考方案1】:您的列表是通用类型 Data,但您将其视为 Map。
@override
Widget build(BuildContext context)
return Container(
child: Center(
child: DropdownButton<String>(
items: dataList.map((data)
return DropdownMenuItem<String>(
value: data.title.toString(),
child: Text(
data.name,
),
);
).toList(),
),
),
);
它现在应该可以工作了。
【讨论】:
以上是关于在 DropDownButton 中使用动态列表 |扑的主要内容,如果未能解决你的问题,请参考以下文章
Future<DropDownButton> 项为空/空/相同值 |扑
在 DropdownButton 中选择 Item 会导致 Flutter 抛出错误
Flutter:如何将 DropdownButton 菜单图标对齐到最右边?