颤振 ListView.builder 使 onPressed 仅适用于关注项
Posted
技术标签:
【中文标题】颤振 ListView.builder 使 onPressed 仅适用于关注项【英文标题】:flutter ListView.builder make onPressed works for only the concern item 【发布时间】:2021-10-22 15:14:07 【问题描述】:我在 ListView.builder 中有一个卡片列表,每张卡片都有一个最喜欢的 IconButton,单击它会改变它的颜色,但是每当我点击它时,所有最喜欢的图标也会改变它们的颜色,我想解决这个问题物品。 谢谢。
bool isPressed = false;
.
.
.
onPressed: ()
setState(()
isPressed = true;
);
【问题讨论】:
你能分享你的物品属性吗? 发生这种情况是因为您将所有项目设置为同一个变量。您必须创建一个布尔列表并将相应的变量设置为 true/false。 【参考方案1】:在您的项目中添加一个字段 isFavorite 作为 bool 类型。您更改 isFavorite 的值并根据 isFavorite 处理颜色。
onPressed: (value)
setState(()
productItem[index].isFavorite = value;
);
对于您要检查的颜色部分:
color: productItem[index].isFavorite?Colors.pinkAccent: Colors.grey,
【讨论】:
以上是关于颤振 ListView.builder 使 onPressed 仅适用于关注项的主要内容,如果未能解决你的问题,请参考以下文章
如何从http POST请求结果颤振在listview builder上显示数据
如何使用 StreamBuilder 将数据从 firebase firestore 检索到颤振中,并使用 ListView.builder 显示值?