gpt4 book ai didi

dart - 如何在 GridView flutter 中获取 GridTile 位置?

转载 作者:IT王子 更新时间:2023-10-29 07:00:47 25 4
gpt4 key购买 nike

我正在使用 GridTile 在 GridView 中创建每个项目。每个项目都是从数据列表中动态创建的。我需要通过获取键或索引来找出单击了哪个项目。请任何人推荐一种方法?

这是我的代码,

 new GridView.count(
shrinkWrap: true,
primary: false,
childAspectRatio: 2.0,
crossAxisCount: 3,
mainAxisSpacing: 10.0,
children: _kCategoryTiles.map((_FilterItemTile item) {
return new GridTile(
child: new Container(
alignment: Alignment.center,
decoration: new BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: new BorderRadius.all(
new Radius.elliptical(10.0, 20.0)),
border: new Border.all(
color: const Color(0xFF33b17c),
),
),
margin: new EdgeInsets.all(10.0),
child: new Text(
item.itemName,
textAlign: TextAlign.center,
style: new TextStyle(
color: Colors.black,
fontSize: 12.0,
fontFamily: 'helvetica_neue_medium',
letterSpacing: 0.59,
),
),
),
);
}).toList(),
)

提前致谢。

最佳答案

您可以将 GridTile 包裹在 FlatButton 中这为您提供了 onPressed 属性。在那里您可以访问您的 _FilterItemTile 项目:

return new GridView.count(
shrinkWrap: true,
primary: false,
childAspectRatio: 2.0,
crossAxisCount: 3,
mainAxisSpacing: 10.0,
children: _kCategoryTiles.map((_FilterItemTile item) {
return new FlatButton(
onPressed: () {
// add code here
print(item);
someFunction(item);
},
child: new GridTile(
child: new Container(
alignment: Alignment.center,
decoration: new BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: new BorderRadius.all(
new Radius.elliptical(10.0, 20.0)),
border: new Border.all(
color: const Color(0xFF33b17c),
),
),
margin: new EdgeInsets.all(10.0),
child: new Text(
item.itemName,
textAlign: TextAlign.center,
style: new TextStyle(
color: Colors.black,
fontSize: 12.0,
fontFamily: 'helvetica_neue_medium',
letterSpacing: 0.59,
),
),
),
);
)
}).toList(),
),

关于dart - 如何在 GridView flutter 中获取 GridTile 位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51112532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com