我有一個專案清單和默認顏色。
List<String> items = ['A'/span>, 'B'/span>, 'C'/span>]。
顏色 _color = Colors.transparent;
從我的代碼來看,它改變了所有按鈕的背景顏色。
ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) {
return ElevatedButton(
風格。ButtonStyle(backgroundColor: MaterialStateProperty.all(_color))。
onPressed: () {
setState(() {
_color = Colors.blue。
});
},
孩子。Text(items[index]),
);
},
);
所以,我希望只有被選中的按鈕能改變背景顏色。
uj5u.com熱心網友回復:
請用這個試試
List<String> items = ['A'/span>, 'B'/span>, 'C'/span>]。
List<Color> _color = [Colors.transparent,Colors.transparent,Colors.transparent ] 。
ListView.builter(
itemCount: items.length,
itemBuilder: (context, index) {
return ElevatedButton(
風格。ButtonStyle(
backgroundColor: MaterialStateProperty.all(_color[index]))。)
onPressed: () {
setState(() {
if (_color[index] == Colors.blue) {
_color[index] = Colors.transparent;
} else {
_color[index] = Colors.blue;
}
});
},
孩子。Text(items[index]),
);
},
);
輸出:
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/315683.html
標籤:

