Flutter 颤振:在GridView中选择卡

Flutter 颤振:在GridView中选择卡,flutter,listview,dart,gridview,Flutter,Listview,Dart,Gridview,我有一个应用程序,可以在GridView中的卡片中显示数据,如下所示: GridView.count( crossAxisCount: 2, children: <Widget>[ _customCard( imageUrl: image1, item: item1, price: price1, count: count1 ), _custom

我有一个应用程序,可以在GridView中的卡片中显示数据,如下所示:

GridView.count(
          crossAxisCount: 2,
          children: <Widget>[
            _customCard(
              imageUrl: image1, item: item1, price: price1, count: count1
            ),
            _customCard(
              imageUrl: image2, item: item2, price: price2, count: count2
            ),
            _customCard(
              imageUrl: image3, item: item3, price: price3, count: count3
            ),
            _customCard(
              imageUrl: image4, item: item4, price: price4, count: count4
            ),
          ],
        ),
我希望在按下指定的卡名时获得它,这取决于它在列表中的索引,就像我们在ListView中所做的那样

 class item {
  final String name;
  final int count;
  final String imageUrl;
  final double price;

  item({this.name, this.imageUrl,  this.count, this.price});
}

List<item> tops = [
  new item(
      imageUrl: "tshirt.png",
      name: "T-shirt",
      count: 0,
      price: 0.50
  ),
  new item(
      imageUrl:   "shirt.png",
      name: "Shirt",
      count: 0,
      price: 0.80
  ),
使用GridView有什么方法可以这样做,还是我可以尝试其他方法?

您可以使用GridView.builder并使用其索引从列表中获取相关对象:

return GridView.builder(
        gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
        physics: ScrollPhysics(),
        itemCount: _customCards.length,
        itemBuilder: (BuildContext context, int index){
         return Inkwell(child:_customCards(
          imageUrl: image[index], item: item[index], price: price[index], count: count[index]),
          onTap(){
            print(tops[index]);
           }
        ),
        }
        );*
您可以使用Gridview.builder并使用其索引从列表中获取相关对象:

return GridView.builder(
        gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
        physics: ScrollPhysics(),
        itemCount: _customCards.length,
        itemBuilder: (BuildContext context, int index){
         return Inkwell(child:_customCards(
          imageUrl: image[index], item: item[index], price: price[index], count: count[index]),
          onTap(){
            print(tops[index]);
           }
        ),
        }
        );*

谢谢你它按我所希望的那样工作我感谢你的帮助谢谢你它按我所希望的那样工作我感谢你的帮助