listview - 如何将额外的参数传递给 Flutter 中 ListView.builder Widget 的 itemBuilder 函数?
问题描述
除了 content 和 index 之外,我想将额外的参数传递给我的 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);
}
)
解决方案
没有必要这样做。
您可以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);
}
推荐阅读
- python - 通过在python中删除换行符并删除第一个和最后一个字符,将列表中的字符串转换为列表
- reactjs - 具有排序功能的自定义表格,点击每一列
- c++ - c++ 编译器是否对代码中的常量进行隐式转换?
- javascript - JavaScript 不存储 HTML 输入值
- r - 如何在没有变量的情况下以编程方式使用 dplyr cross()?
- c# - 如何抑制运行 C# Winforms 应用程序时弹出的黑壳?
- javascript - 为什么两个控制台日志给出不同的结果?
- network-programming - 用于协议剖析的 Python 库
- npm - 如何配置 npm update 来更新文件的 mtime?
- go - 任何想法如何使用 Go 作为身份验证服务的一部分为谷歌提供商实现 OIDC 实现