如何在Flutter中将额外的参数传递给ListView.builder Widget的itemBuilder函数?

时间:2018-09-23 15:51:25

标签: listview dart flutter

除了内容和索引,我想将额外的参数传递给我的itemBuilder函数。我该怎么办?

body: new ListView.builder
  (
    itemCount: litems.length,
    itemBuilder: (BuildContext ctxt, int index) {
     return new Text(litems[index]);
    }
  )

我想要做些什么:

int k = "HI";
body: new ListView.builder
  (
    itemCount: litems.length,
    itemBuilder: (BuildContext ctxt, int index, String k) {
     return new Text(litems[index] + k);
    }
  )

1 个答案:

答案 0 :(得分:2)

没有必要。

您可以从构建器函数体内直接访问k,而无需将其作为参数传递。
您传递了一个内联函数,该函数可以访问定义它的作用域。

如果您没有内联生成器函数,并且希望/需要传递其他参数,则可以使用

String k = "HI";    
child: new ListView.builder(
  itemCount: litems.length,
  itemBuilder: (ctxt, Index) => _listItemBuilder(ctxt, Index, k)
)

...

Widget _listItemBuilder(BuildContext ctxt, int Index, String k) {
    return new Text(litems[Index] + k);
  }