gpt4 book ai didi

flutter - 使用 onTap 时如何从列表和屏幕中删除项目?

转载 作者:IT王子 更新时间:2023-10-29 06:56:42 26 4
gpt4 key购买 nike

我试图在使用“onTap”时从列表和屏幕中删除该项目。目前它从列表中删除了该项目,但我无法将其从屏幕上删除。我怎样才能做到这一点?

enter image description here

这是我的代码:

          SliverList(
delegate: SliverChildBuilderDelegate(
(context, i) => ListTile(
title: Slidable(
actionPane: SlidableDrawerActionPane(),
actionExtentRatio: 0.25,
child: new Text(
items[i],
style: TextStyle(fontSize: 30),
),
secondaryActions: <Widget>[
IconSlideAction(
caption: 'Remove',
color: Colors.red,
icon: Icons.delete,
onTap: () {
setState(() {
items.removeAt(i);
});
},
),
],
),
),
childCount: items.length,
),
),

最佳答案

我假设发生这种情况是因为 setState 不会触发您的 Sliver 小部件执行重建。

尝试将您的 SliverList 包装在 StatefulBuilder 中.

例如

StatefulBuilder(builder: (innerContext, innerSetState) =>
SliverList(
delegate: SliverChildBuilderDelegate(
(context, i) => ListTile(
title: Slidable(
actionPane: SlidableDrawerActionPane(),
actionExtentRatio: 0.25,
child: new Text(
items[i],
style: TextStyle(fontSize: 30),
),
secondaryActions: <Widget>[
IconSlideAction(
caption: 'Remove',
color: Colors.red,
icon: Icons.delete,
onTap: () {
innerSetState(() {
items.removeAt(i);
});
},
),
],
),
),
childCount: items.length,
),
),
)

这里最重要的部分是 innerSetState 函数,它在构建器的函数参数中传递。它重建整个 StatefulBuilder 子树。

如果这有帮助,请告诉我。

关于flutter - 使用 onTap 时如何从列表和屏幕中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56477892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com