Flutter中点击GridView项时如何获取所在列的信息
获取GridView点击项所在列的方法
直接利用item的索引和crossAxisCount计算就能实现,核心逻辑很简单:
因为GridView的item索引是按行顺序依次递增的(比如5列的话,第1行索引0-4,第2行5-9...),所以用当前item的index对crossAxisCount取余,再根据你的列计数习惯调整(比如从1开始计数就加1),就能得到所在列的编号。
举个代码示例:
GridView.count( crossAxisCount: 5, children: List.generate(10, (index) { return GestureDetector( onTap: () { // 计算从1开始的列号 int columnNumber = (index % 5) + 1; print('点击了col$columnNumber'); // 这里可以根据columnNumber执行对应逻辑 }, child: Container( alignment: Alignment.center, child: Text('info${index+1}'), margin: EdgeInsets.all(8), color: Colors.grey[200], ), ); }), )
比如点击info3(索引2)时,2%5+1=3,对应col3;点击info8(索引7)时,7%5+1=3,同样对应col3,完全符合你的需求。如果你的列是从0开始计数,直接用index % 5即可。
内容的提问来源于stack exchange,提问作者Abu Qudama
相关产品推荐
相关产品推荐

