Abd*_*ؤمن 41 functional-programming dart flutter
我有一个Strings 列表,例如,
var moviesTitles = ['Inception', 'Heat', 'Spider Man'];
Run Code Online (Sandbox Code Playgroud)
并希望用moviesTitles.map它们将它们转换为Tab WidgetFlutter 中的s 列表.
Abd*_*ؤمن 74
您可以使用
moviesTitles.map((title) => Tab(text: title)).toList()
例:
bottom: new TabBar(
controller: _controller,
isScrollable: true,
tabs:
moviesTitles.map((title) => Tab(text: title)).toList()
,
),
Run Code Online (Sandbox Code Playgroud)
小智 31
我是扑的新手。我发现人们也可以通过这种方式实现它。
tabs: [
for (var title in movieTitles) Tab(text: title)
]
Run Code Online (Sandbox Code Playgroud)
注意:它要求 dart sdk 版本 >= 2.3.0,见这里
是的,你也可以这样做
List<String> listTab = new List();
map.forEach((key, val) {
listTab.add(val);
});
//your widget//
bottom: new TabBar(
controller: _controller,
isScrollable: true,
tabs: listTab
,
),
Run Code Online (Sandbox Code Playgroud)
我尝试了同样的方法,但在函数映射中使用了具有更多值的不同列表。我的问题是忘记了 return 语句。这是非常重要的 :)
bottom: new TabBar(
controller: _controller,
isScrollable: true,
tabs:
moviesTitles.map((title) {return Tab(text: title)}).toList()
,
),
Run Code Online (Sandbox Code Playgroud)
tabs: [...data.map((title) => Text(title)).toList(), extra_widget],
tabs: data.map((title) => Text(title)).toList(),
Run Code Online (Sandbox Code Playgroud)
对我来说效果很好