flutter 如何通过按钮或图标增加或减少列表下的元素?

ipakzgxi  于 2022-11-25  发布在  Flutter
关注(0)|答案(1)|浏览(182)
int ticket = 0;

List<Painting> paintingList = [
      Painting(
        title: 'Giacomo Amiconi',
        subTitle: 'Jacob and Rachel',
        artSubtitle: 'National Museum, Warsaw',
        artTitle: '18th Century',
        imageAsset:
            'https://upload.wikimedia.org/wikipedia/commons/0/0a/Amigoni_Jacob_and_Rachel.jpg',
      ),
    ];

        return Expanded(
  child: ListView.separated(
    separatorBuilder: (BuildContext context, int index) {
      return SizedBox(height: 10);
    },
    scrollDirection: Axis.vertical,
    shrinkWrap: true,
    itemCount: paintingList.length,
    itemBuilder: (context, index) {
      Painting model = paintingList[index];
      return Padding(
        padding: const EdgeInsets.all(8.0),
        child: Card(
            elevation: 5,
            child: Column(
              children: [
                ListTile(
                  leading: Padding(
                    padding: const EdgeInsets.only(top: 8),
                    child: Icon(Icons.brush, color: orange),
                  ),
                  title: Text(
                    model.title!,
                    style: artTitle,
                  ),
                  subtitle: Text(
                    model.subTitle!,
                    style: artSubtitle,
                  ),
                ),
                Image.network(
                  model.imageAsset!,
                ),
                ListTile(
                  title: Text(
                    model.artTitle!,
                    style: artTitle,
                  ),
                  subtitle: Text(
                    model.artSubtitle!,
                    style: artSubtitle,
                  ),
                  trailing: Text('$ticket'),
                ),
                Row(
                  children: [
                    Container(
                        child: GestureDetector(
                            onTap: () {
                              setState(() {
                                ticket++;
                              });
                            },
                            child: Icon(Icons.add)))
                  ],
                )
              ],
            )),
      );
    },
  ),
);

我创建了一个名为Painting的列表,并分配了一些值 为了避免代码混乱,我没有添加我创建的另外两个Painting()。 我在绘画中创建的。我的目标是创建一个添加按钮,并在每次用户点击它时增加它(就像向购物车添加产品)。当我这样做时,是的,我可以做增加。但我创建的列表在其所有元素中都是增加的。我只想增加或减少我点击它旁边的添加按钮时的列表元素。

6kkfgxo0

6kkfgxo01#

可以使用list的insert方法在特定索引处添加项。

paintingList.insert(index, paintingList[i]);

上面的行将在单击的项目旁边添加相同的项目。
对于删除特定索引处的项目,您可以使用removeAt方法来列出。

paintingList.removeAt(index);

相关问题