2
나는 위젯의 목록을 구축을 위해 노력하고 동적플러터 - 빌드 위젯은 동적으로
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를 사용하면 사용자가 요소를 클릭하면 색상 만 표시됩니다. 예를 들어 카운터를 3으로 설정하면, 내가 무엇을 의미하는지 알 경우, 현재의 인터 레션 대신 카운터 변수를 계속 참조하기 때문에 모든 것이 선택됩니다.
이 문제를 효과적으로 해결할 수있는 방법에 대한 제안 사항이 있으십니까?
final _createTapHandler = (value) {
setState(() => toggleColor(value));
};
이 그럼 당신은 말할 수 :
어디서 폐쇄해야합니까? – OhMad
어디서나 인라인으로 선언 할 수도 있습니다. onTap : (value) {setState (() => toggleColor (value));}) (카운터) –
덕분에, buildTile 솔루션이 완벽하게 작동합니다. – OhMad