Dart:映射列表(list.map)

时间:2018-04-20 12:10:02

标签: functional-programming dart flutter

我有一个String的列表,例如

var moviesTitles = ['Inception', 'Heat', 'Spider Man'];

并希望使用moviesTitles.map将其转换为Flutter中的Tab Widget列表。

5 个答案:

答案 0 :(得分:38)

你可以使用

moviesTitles.map((title) => Tab(text: title)).toList()

示例:

    bottom: new TabBar(
      controller: _controller,
      isScrollable: true,
      tabs:
        moviesTitles.map((title) => Tab(text: title)).toList()
      ,
    ),

答案 1 :(得分:20)

我是新手。我发现也可以通过这种方式实现。

 tabs: [
    for (var title in movieTitles) Tab(text: title)
  ]

注意:它要求dart sdk版本为> = 2.3.0,see here

答案 2 :(得分:1)

我尝试了相同的方法,但是在功能图中使用具有更多值的不同列表。我的问题是忘记退货声明。这非常重要:)

 bottom: new TabBar(
      controller: _controller,
      isScrollable: true,
      tabs:
        moviesTitles.map((title) { return Tab(text: title)}).toList()
      ,
    ),

答案 3 :(得分:0)

...data.map((title) { return Text(title);}).toList(),

对我来说很好

答案 4 :(得分:-1)

是的,您也可以这样做

 List<String> listTab = new List();
 map.forEach((key, val) {
  listTab.add(val);
 });

 //your widget//
 bottom: new TabBar(
  controller: _controller,
  isScrollable: true,
  tabs: listTab
  ,
),