在创建 AnimatedList 时给它指定一个唯一的 GlobalKey,这样当列表项发生变化时只会更新发生变化的项而不会重建整个列表。示例如下:
GlobalKey listKey = GlobalKey();
AnimatedList(
key: listKey,
initialItemCount: itemList.length,
itemBuilder: (context, index, animation) {
return SizeTransition(
sizeFactor: animation,
child: listItemWidget(itemList[index]),
);
},
);
// 更新列表项时
void updateItemList() {
itemList.add(newItem);
listKey.currentState.insertItem(itemList.length - 1);
}