我试图使用动画列表部件,我想实现的是通过按下动画列表中的瓷砖部件上的按钮,瓷砖将从我的数据中删除,并从动画列表中删除,但是当按下按钮时,只有最后一项中的最后一项将被删除,而不是在给定的索引中的一项。
首先,我为列表使用了一个全局键
final GlobalKey<AnimatedListState> listKey = GlobalKey<AnimatedListState>();
我的动画列表代码
AnimatedList(
initialItemCount: snapshot.data[0].length ,
key: listKey,
itemBuilder: (BuildContext context, int index, Animation animation) {
return SizeTransition(
sizeFactor: animation,
child: GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ProductFullScreenView(
productInfo: snapshot.data[0].elementAt(index),
)));
},
child: ProductListCardVertical(
index: index,
),
));
});
在我的widget里面,我调用了这个函数
// function to remove the data from my database, if true then remove the tile
// remove tile
listKey.currentState.removeItem(
widget.index, (context, animation) => Container());
不胜感激
更新。
这个问题的发生是因为我没有从列表中删除数据,所以我所做的是我创建了一个全局的数据列表,并将我从数据库中得到的列表分配给该值,然后我从瓷砖部件内的列表中删除了该项目的索引。