如何更改 ElevatedButton Flutter 中的 onPressed 高度

Tab*_*aba 3 flutter flutter-layout

2.0.1flutter版本之前,我使用的是RaisedButton并且有一个属性被调用focusElevation来改变按钮被按下时的高度。因此,在 Flutter 弃用它之后,根据文档,我们应该改用它ElevatedButton。但是现在我找不到用style:属性来改变它的方法。

我知道如何更改高度,但我想更改用户按下时的onPressed 高度。从它的文档来看,它有一些默认值:

按钮的高程是相对于高程参数定义的。禁用的仰角与参数值相同,当按钮悬停或聚焦时使用仰角+2,按下按钮时使用仰角+6。

因此,任何想法如何定制onPressed抬高ElevatedButton

And*_*rej 6

您可以使用该style属性来完成。

ElevatedButton(
  style: ButtonStyle(
    elevation: MaterialStateProperty.resolveWith<double>(
      (Set<MaterialState> states) {
        // if the button is pressed the elevation is 10.0, if not
        // it is 5.0
        if (states.contains(MaterialState.pressed))
          return 10.0;
        return 5.0;
      },
    ),
  ),
)
Run Code Online (Sandbox Code Playgroud)

或者您可以ElevatedButton.styleFrom()通过使用merge方法将其与新属性结合使用。像这样:

ElevatedButton.styleFrom(primary: Colors.red).merge(
              ButtonStyle(
                elevation: MaterialStateProperty.resolveWith<double>(
                  (Set<MaterialState> states) {
                    if (states.contains(MaterialState.pressed))
                      return 10.0;
                    return 5.0;
                  },
                ),
              ),
            ),
          ),
Run Code Online (Sandbox Code Playgroud)