这是在类状态下定义的:
static var _priorities = ["High", "Low"];
strong text
这在构建小部件内:
ListTile(
title: DropdownButton(
items: _priorities.map((String dropDownStringItem) {
return DropdownMenuItem<String>(
value: dropDownStringItem,
child: Text(dropDownStringItem),
);
}).toList(),
onChanged: null),
)
List.map
:返回一个新的惰性Iterable,该元素具有通过按迭代顺序在此Iterable的每个元素上调用f而创建的元素。即
map
返回一个Iterable
,其中包含来自原始List
转换后的每个元素。列表中项目的转换方式取决于传递给map
方法的闭包。您的情况:
String
列表中选取每个_priorities
:“高”和“低”。DropDownMenuItem<String>
传递给DropDownMenuItem Function(String)
方法,为其中每个构建一个map
。您传递给map
的闭包是接受String
并返回DropDownMenuItem
toList()
将Iterable
返回的map
转换为List
。List<String>
并为每个字符串构建一个List<DropDownMenuItem>
,您已经将String
转换为DropDownMenuItem
。