颤动不允许从树上移除

问题描述 投票:2回答:3

我正在与Flutter合作,我正在努力从树中删除一个Dismissible对象。以下是我的代码。我创建了一个存储在列表'newlist'中的自定义类。我似乎从List和setState()中删除了Dismissible对象,但它似乎不起作用。任何帮助是极大的赞赏。

   return new Dismissible(key: new Key("newlist"),
direction: DismissDirection.horizontal,
onDismissed: (DismissDirection direction) {
            setState(() {
              newlist.remove(newlist[index]);
              print(newlist.length);

            });
},
child: new ListTile(
leading: const
Icon(Icons.album),
title: new Text(newlist[index].amount),
subtitle: new Text(
newlist[index].name)));
})),
android listview flutter
3个回答
1
投票

我解决了基本上,我为每个Dismissable使用相同的Key。这让Flutter认为我解雇的对象仍然存在。希望这有助于某人。


1
投票

是的,这只是因为Key。

key: new Key("newlist") - 错了

它应该是:

key: Key(newlist[index])

1
投票

我已经使用项目名称+列表长度作为键来解决它,因为可能有一些具有相同值的项目

return Dismissible(

          key: Key(item.name + _paths.length.toString()),

          onDismissed: (direction) {
            setState(() {
              _paths.removeAt(index);
            });

          // Show a red background as the item is swiped away
          background: Container(color: Colors.red),
          child: Container(child: new Texts().tallText(item.name)),
        );
© www.soinside.com 2019 - 2024. All rights reserved.