Search code examples
flutterflutter-state

flutter multiple state management


I have a sized box like so

    child: SizedBox(
        width: 50.0,
        height: 50.0,
        child: DecoratedBox(
          decoration: BoxDecoration(
              color: Colors.blue
          ),
        )
    ),

i would like to change the color of the box decoration depending on the value of a piece of state called _status, _status can have four values 1,2,3,4, and depending on the value of status I would like to change the color of the box decoration like so 1 - blue 2 - red 3- amber 4 - green

The ternary statement that is normally used does not help as it is only good with a limited number of values of the state is there a way that I can implement this?

Thanks


Solution

  • You can define helper function to calculate Color value

    child: SizedBox(
         width: 50.0,
         height: 50.0,
         child: DecoratedBox(
           decoration: BoxDecoration(
               color: _getBoxColor(),
           ),
         )
     ),
     
    //somewhere below build method
    Color _getBoxColor() {
     switch (_status) {
       case 1:
         return Colors.blue;
       case 2:
         return Colors.red;
       ...
     }