颤振 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 仅适用于关注项的主要内容,如果未能解决你的问题,请参考以下文章

颤振中的 LIstView.builder

颤振 ListView.builder 的无限滚动

如何从http POST请求结果颤振在listview builder上显示数据

如何使用 StreamBuilder 将数据从 firebase firestore 检索到颤振中,并使用 ListView.builder 显示值?

在具有动态高度的同一页面上颤动两个 listview.builder

Flutter:ListView.builder 创建列