Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
367 views
in Technique[技术] by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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;
   ...
 }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...