флаттер как изменить цвет кнопки по клику
Я пытаюсь изменить цвет кнопки, когда нажимаю на нее. Вы можете мне помочь, потому что я действительно не могу этого сделать. Спасибо.
Container(
child: new Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
new MaterialButton(
child: new Text("1"),
color: Colors.greenAccent,
splashColor: Colors.red,
onPressed: (){
test=0;
test=1;
},
),
new MaterialButton(
child: new Text("2"),
color: Colors.greenAccent,
onPressed: (){
test=0;
test=2;
},
2 ответа
Попробуйте вот так
Color mySplashColor=Colors.blue; //define in build function or state class
splashColors: mySplashColor,
onPressed(){
setState(){
splashColors=Colors.red;
}
}
Способ сделать это - использовать состояние. Первое, что вам нужно сделать, это преобразовать ваш виджет в виджет с отслеживанием состояния .
После этого вы устанавливаете для переменной состояния типа Color с именем buttonColor значение по умолчанию «Colors.greenAccent». Затем вы устанавливаете свойство цвета MaterialButton для этой переменной.
Единственное, что нужно сделать сейчас, это использовать () => setState(() => buttonColor = Colors.red) в качестве свойства кнопки onPressed.