【问题标题】:flutter ListView.builder make onPressed works for only the concern item颤振 ListView.builder 使 onPressed 仅适用于关注项
【发布时间】:2021-10-22 15:14:07
【问题描述】:

我在 ListView.builder 中有一个卡片列表,每张卡片都有一个最喜欢的 IconButton,单击它会改变它的颜色,但是每当我点击它时,所有最喜欢的图标也会改变它们的颜色,我想解决这个问题物品。 谢谢。

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

【问题讨论】:

  • 你能分享你的物品属性吗?
  • 发生这种情况是因为您将所有项目设置为同一个变量。您必须创建一个布尔列表并将相应的变量设置为 true/false。

标签: flutter listview card


【解决方案1】:

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

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

对于您要检查的颜色部分:

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

【讨论】:

    猜你喜欢
    • 2021-08-07
    • 1970-01-01
    • 2022-01-14
    • 2020-07-13
    • 2021-12-22
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    相关资源
    最近更新 更多