您需要将计数器变量的当前值捕获到一个闭包中:
final _createTapHandler = (value) { setState(() => toggleColor(value));};然后您可以说:
onTap: _createTapHandler(counter)
也许更可维护的解决方案是创建一种构建GestureRecognizer的方法。然后,您可以使用计数器值对其进行配置。
Widget buildTile(int tileCounter) { return new GestureDetector( onTap: (){ setState((){ toggleColor(tileCounter); }); }, child: new Container( color: colors[tileCounter], width: 80.0, height: 80.0, margin: new EdgeInsets.all(11.3), ) );}如果您想要更加可维护,则可以将该构建函数重构为它自己的StatelessWidget。



