【发布时间】:2019-10-13 04:45:05
【问题描述】:
我目前正在开发一个GridView,它为列表中的每个项目构建一个Container 小部件。
new GridView.count(
crossAxisCount: 2,
childAspectRatio: 1.3,
children: cardSet.map((card){
Color containerColor = Colors.blue;
return new GestureDetector(
onTap: (){
setState(){
containerColor = Colors.green;
//This part is unsolved:
containerColor.of(matchingWidget) = Colors.green;
};
}
child: new Container(
color: containerColor,
),
);
}).toList()),
所以这是我的问题:我希望用户在 GridView 中找到匹配的值,并且由于每个 Container 各持有一个值,因此选择两个带有 onTap 的值会导致匹配值或不匹配值.在这两种情况下,两个选定的Container 小部件的颜色都应该改变。
更改最后选择的Container 小部件很容易,只需将color 属性更改为setState(),但是如何更改先前选择的“匹配”容器的颜色?要使用图像,在用户点击匹配的“两个”容器后,如何同时更改“两个”和“2”容器的颜色?
我是使用key 属性来存储对“匹配”小部件的引用还是有其他可能性?
【问题讨论】:
-
你能分享更多你的代码吗?
-
@yahocho 我刚刚用我想解决的相关部分更新了代码 sn-p。基本上它归结为更改匹配容器的
containerColor(如果匹配确实正确,例如“2”和“两个”)同时更改最后一个轻敲容器的颜色。