gpt4 book ai didi

android - 如何为 Flutter 中使用 itemBuilder 生成的列表中的每个项目分配不同的键?

转载 作者:行者123 更新时间:2023-12-03 03:54:56 24 4
gpt4 key购买 nike

我一直在设计一个应用程序,用户在其中搜索一个术语和一个 GridView显示包含与该术语相关的所有图像。所有这些图像都是由 Draggable 制作的.

在另一个 GridView在同一页面上,我放置了 40 Dragtargets .因此,用户可以拖动搜索到的图像并将其放置在 DragTargets 之一中,因此能够选择 40 张图像。

问题是当我将一张图片拖到 Dragtarget网格,所有 40 个 dragtargets被相同的图像填充。我认为这是因为每个 Dragtarget具有相同的键,因为它是在 itemBuilder 中生成的。但我不知道如何为每个 Dragtarget 设置不同的 key 在生成它时。在实现相同场景时也将不胜感激替代解决方案!

可拖动图像的代码:

                SliverGrid(
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: 350,
mainAxisSpacing: 10,
crossAxisSpacing: 10),
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return Container(
child: LongPressDraggable<String>(
data: imageLinks[index],
feedback: Image(
image: NetworkImage(imageLinks[index])),
child: Image(
image: NetworkImage(imageLinks[index])),
onDragStarted: () {
panelController.close();
},
),
);

GridView 和 DragTargets 的代码:
GridView.builder(
itemCount: 40,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 5,),
itemBuilder: (context,index){
return Container(
padding: EdgeInsets.only(top:5,right:5,bottom:5,left:5),
child: DragTarget<String>(
builder: (context, List<String> candidateData, rejectedData) {
if (dragged == true) {
return Container(
height: 50.0,
width: 50.0,
child: Image(
image: NetworkImage(draggedImage),
),
);
} else {
return Container(
height: 50.0,
width: 50.0,
color: Colors.yellow,
);
}
},
onWillAccept: (data) {
return true;
},
onAccept: (data) {
setState(() {
dragged = true;
draggedImage = data;
//panelController.open();
});
}
),
);}
),

最佳答案

问题是您对所有 dragtarget 元素使用单个变量。

让我用代码解释一下。

onAccept: (data) {
setState(() {
dragged = true;
draggedImage = data;
//panelController.open();
});
}

在上面的代码中,您将拖动值设置为 true 并将 draggedImage 值设置为 true,因此每个小部件都使用相同的值构建。

我希望我清楚问题。

解决方案:

要解决此问题,您可以创建一个 bool 列表(如果您想为所有 dragtarget 元素保持该 bool 值也不同)和 draggedImage 列表,同时为每个单独的元素按住draggedImage,因此当您更改时所有内容都不会改变一。

关于android - 如何为 Flutter 中使用 itemBuilder 生成的列表中的每个项目分配不同的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61714630/

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