首页 > 解决方案 > 更改颜色 RaisedButton onPressed

问题描述

当我按下我的 RaisedButton 时,我想改变我的颜色。

所以我初始化一个布尔值,并在我的方法 setState() 中调用它。

class _Poll extends State<PollPage> {
  var pressed = true;

new RaisedButton(
                    color: pressed ? Colors.pink[50] : Colors.pink,
                    hoverColor: Colors.pinkAccent,
                    focusColor: Colors.pinkAccent,
                    child: new Text(choix[3]),
                    onPressed: ((){
                      pressed = !pressed;
                    }),
                  ),

}

但是当我点击我的按钮时,初始颜色保持不变。

标签: mobileflutterflutter-layout

解决方案


你忘了调用 setState()。

@override
  Widget build(BuildContext context) {
    return RaisedButton(
      color: pressed ? Colors.blue : Colors.pink,
      hoverColor: Colors.pinkAccent,
      focusColor: Colors.pinkAccent,
      child: new Text("Raised Button"),
      onPressed: () => setState((){pressed = !pressed;}),
    );
  }

推荐阅读