动画列表只删除最后一项,不删除给定索引的项目。

问题描述 投票:0回答:1

我试图使用动画列表部件,我想实现的是通过按下动画列表中的瓷砖部件上的按钮,瓷砖将从我的数据中删除,并从动画列表中删除,但是当按下按钮时,只有最后一项中的最后一项将被删除,而不是在给定的索引中的一项。

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

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());

不胜感激

flutter dart flutter-layout flutter-widget
1个回答
0
投票

更新。

这个问题的发生是因为我没有从列表中删除数据,所以我所做的是我创建了一个全局的数据列表,并将我从数据库中得到的列表分配给该值,然后我从瓷砖部件内的列表中删除了该项目的索引。

© www.soinside.com 2019 - 2024. All rights reserved.