如何为Flutter ListView中的每个项目提供自定义(ID ||键)?

时间:2019-05-26 00:26:04

标签: flutter

是否可以为flutter的列表视图中的每个项目赋予自定义ID?

我需要通过其ID或键更新flutter listview中的单个项目。

为什么要按ID更新?

因为我想更新特定项目而不重建整个列表视图项目,所以这可能会提高我的应用程序的性能。

2 个答案:

答案 0 :(得分:2)

我想您可以使用itemBuilder的索引,因为它不是重复的。

return ListView.builder(
         itemCount: items.length,
         itemBuilder: (context, int index) {
           return ListTile(key: new Key(index.toString()));...
      },
    );

答案 1 :(得分:1)

您可以这样做:

return ListView.builder(
  itemCount: list.length,
  itemBuilder: (context, index) {
  return Card(
    child: ListTile(
    title: Text(list[index]),
    onTap: () { //                                  <-- onTap
      setState(() {
        list.insert(index, 'updated value');
      });
    },
    onLongPress: () { //                            <-- onLongPress
      setState(() {
        list.removeAt(index);
      });
    },
   ),
  );
 },
);

如您所见,您可以轻松地进行更新和删除。