How can I change the color using Provider State Management instead of setState()
I have one Button by default color is black then - 1st click color is blue, 2nd click color is red, 3rd click color is green 4th click color is black(by default) or purple how can I do it using Provider
Model:
class DriverStatusState extends ChangeNotifier {
var numberOfClicks = 0;
Color buttonColor = Colors.red;
void changeColor() {
numberOfClicks++;
mapNumerOfClicksToColor(numberOfClicks);
notifyListeners();
}
mapNumerOfClicksToColor(int num) {
switch (num) {
case 1:
{
buttonColor = Colors.orange;
}
break;
case 2:
{
buttonColor = Colors.green;
}
break;
default:
{
buttonColor = Colors.red;
}
break;
}
notifyListeners();
}
}
Widget:
Consumer<DriverStatusState>(
builder: (context, state, _) => ElevatedButton(
child: Text('press me'),
onPressed: () {
state.mapNumerOfClicksToColor(0);
},
style: ElevatedButton.styleFrom(primary: state.buttonColor),
),
),