动画列表仅删除最后一个项目,而不删除给定索引处的项目

时间:2020-05-25 14:59:04

标签: flutter dart flutter-layout flutter-widget

我正在尝试使用动画列表窗口小部件,我要实现的是通过在此动画列表内的图块窗口小部件上按一个按钮,将从我的数据中删除该图块并将其从动画列表中删除,但是当按按钮,将删除最后一个中的最后一个项目,而不是给定索引中的最后一个项目

首先,我为列表使用了全局键

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,
                    ),
              ));
        });

在我的小部件中,我将此函数称为

// function to remove the data from my database, if true then remove the tile
// remove tile 
 listKey.currentState.removeItem(
                            widget.index, (context, animation) => Container());

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

更新:

发生此问题是因为我没有从列表中删除数据,所以我要做的是创建了数据的全局列表,并将从数据库中获取的列表分配给该值,然后删除了索引平铺窗口小部件内列表中的项目的位置。