更改 Material 按钮颜色 onPress 并返回默认的 onLongPress

Change Material button color onPress and back to default onLongPress

嗨,我对 Flutter 还是个新手,但我想制作一个非常简单的应用程序。

此应用包含 30 个按钮,每个按钮都位于自己的容器中。要遵循的代码。我想做的是,如果按下一个按钮,它会变成橙色,然后如果它被长按,它会恢复到默认的白色。有人可以解释如何做到这一点。这是一个只有 1 个按钮的示例。

              Container(
            width: 65,
            height: 65,
            child: MaterialButton(
              shape: CircleBorder(
                  side: BorderSide(
                      width: 5,
                      color: Colors.blue[900],
                      style: BorderStyle.solid)),
              child: Text(
                "1",
                style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
              ),
              color: Colors.white,
              textColor: Colors.black,
              onPressed: () {
                setState(() {
                  color:
                  Colors.orange;
                });
              },
              onLongPress: (){
                setState(() {
                  color:
                  Colors.white;
                });
              },
            ),
          ),

提前致谢

//declare color variable
Color myColor=Colors.white;

//set myColor to material button
color:myColor;

//in setstate use it like this

setState({
myColor=Colors.white; or myColor=Colors.orange;
})

首先定义一个颜色

Color buttonColor = Colors.white;

然后将此颜色传递给您的按钮

MaterialButton(color: buttonColor)

在此之后,在你的 onPressed 函数中

 onPressed: () {
            setState(() {
              buttonColor = 
              Colors.orange;
            });
          },