是否可以为flutter的列表视图中的每个项目赋予自定义ID?
我需要通过其ID或键更新flutter listview中的单个项目。
为什么要按ID更新?
因为我想更新特定项目而不重建整个列表视图项目,所以这可能会提高我的应用程序的性能。
答案 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);
});
},
),
);
},
);
如您所见,您可以轻松地进行更新和删除。