【发布时间】:2019-09-08 15:11:06
【问题描述】:
我有一个字符串列表:
List _choice = ["Europe","Asia","Africa"];
对于我生成 RaisedButton 的每个值:
我还有一个变量:
字符串答案 = “欧洲”;
我的目标: 如果用户单击任何 Raisedbutton,则将 Text 值等于 answer 值的颜色更改为绿色。对于其他文本值不等于答案值的情况,将颜色更改为红色。
我的代码的问题是所有 RaisedButton 都变为红色或绿色。
Widget build(BuildContext context) {
List<String> _choice = <String>["Europe","Asia","Africa"];
String answer = "Europe";
int NumberChoice = _choice.length;
//RaisedButtons
for (var i = 0; i < NumberChoice; i++)
new RaisedButton(
color: _colorButton,
child: new Text(
_choice[i],
style: new TextStyle(
fontSize: 20.0, color: Colors.white),
),
onPressed: () {
setState(() {
if (_choice[i] == answer) {
print("--------------- Corect ----------------");
_colorButton = Colors.greenAccent;
scoreResult = 1;
} else {
print("--------------- False ------------------------");
_colorButton = Colors.redAccent;
scoreResult = 0;
}
});
},
),
【问题讨论】:
-
你把
_colorButton给了所有的RaisedButton,这就是为什么......,你应该根据索引给不同的颜色。 -
谢谢,是否可以为每个 RaisedButton 提供一个唯一的 ID,例如 RaisedButton_1、RaisedButton_2、...?
-
我已经回答了你的问题@ThibautFAURE。让我知道这是否适合你。谢谢
-
嘿@ThibautFAURE,我找到了解决方案,请在下面找到已编辑的答案。它现在可以工作了。请给它竖起大拇指并标记为正确。将等待得到您的回复。 :)