首页 > 解决方案 > 颤振 ListView.builder 使 onPressed 仅适用于关注项

问题描述

我在 ListView.builder 中有一个卡片列表,每张卡片都有一个最喜欢的 IconButton,单击它会改变它的颜色,但是每当我点击它时,所有最喜欢的图标也会改变它们的颜色,我想处理关注的项目。谢谢。

bool isPressed = false;
 .
 .
 .
onPressed: () {
   setState(() {
   isPressed = true;
    });
 }

标签: flutterlistviewcard

解决方案


在您的项目中,您添加一个字段 isFavorite 作为 bool 类型。您更改 isFavorite 的值并根据 isFavorite 处理颜色。

onPressed: (value) {
   setState(() {
    productItem[index].isFavorite = value;
    });
 }

对于颜色部分,您将检查:

color: productItem[index].isFavorite?Colors.pinkAccent: Colors.grey,

推荐阅读