2
我想建立一個Widget列表動態撲 - 建立小工具動態
List<Widget> buildGrid(){
List<Widget> grid = new List<Widget>(3);
List<Widget> tiles = [];
int counter = 0;
for (int i = 0; i < 3; i++){
tiles = [];
for (int j = 0; j < 4; j++){
tiles.add(new GestureDetector(
onTap:(){
setState((){
toggleColor(counter);
});
},
child: new Container(
color: colors[counter],
width: 80.0,
height: 80.0,
margin: new EdgeInsets.all(11.3),
)
));
counter++;
}
grid[i] = new Row(
children: tiles,
);
counter = 0;
}
return grid;
}
這樣做的問題是,新添加的元素的toggleColor總是12.我是想添加一個新的GestureDetector與計數器的當前迭代,所以如果用戶點擊一個元素,它只會給它着色。例如,如果我將counter設置爲3,則所有內容都會被選中,因爲它仍然引用計數器變量,而不是當前的內部變量,如果您知道我的意思。
有關如何有效解決此問題的任何建議?
我需要放置封口的位置? – OhMad
任何地方,你甚至可以聲明它內聯。 onTap:((value){setState(()=> toggleColor(value));})(counter) –
感謝您的buildTile解決方案。 – OhMad