Вы можете просто установить Enum и в соответствии со значением изменить цвет кнопки. Просто создайте переменную для хранения значения перечисления. Я использовал здесь переменную buttonStatus и инициализировал ее как ButtonStatus.Unansarded
enum ButtonStatus{Unanswered,CorrectAnswer,WrongAnswer}
Color getButtonColor (ButtonStatus status) {
switch (status) {
case ButtonStatus.Unanswered: {
return Colors.white;
}
break;
case ButtonStatus.CorrectAnswer: {
return Colors.green;
}
break;
case ButtonStatus.WrongAnswer: {
return Colors.red;
}
break;
default: {
return Colors.white;
}
}
}
И затем ваш код будет обновлен следующим образом:
RaisedButton (
padding: EdgeInsets.fromLTRB(10.0, 8.0, 10.0, 8.0),
elevation: 8.0,
color: getButtonColor(buttonStatus),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10)),
onPressed: () {
setState(() {
if (quiz.choices[questionNumber][0] ==
quiz.correctAnswers[questionNumber]){
finalScore = finalScore + 4;
buttonStatus = ButtonStatus.CorrectAnswer;
}else{
debugPrint("Wrong");
buttonStatus = ButtonStatus.WrongAnswer
}
});
},
child: Text(quiz.choices[questionNumber][0],
style: TextStyle(
fontSize: 22.0,
fontFamily: "AlegreyaSans",
color: Colors.black
),
),
),
Надеюсь, это то, что вы искали.