如何在Flutter中将“RaisedButton”升级为“ElevatedButton”?

v2g6jxz6  于 2022-12-30  发布在  Flutter
关注(0)|答案(2)|浏览(254)

我得到了下面的代码,并希望使其工作:

RaisedButton(
                child:
                    Text(_authMode == AuthMode.Login ? 'LOGIN' : 'SIGN UP'),
                onPressed: _submit,
                shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(30),
                ),
                padding:
                    EdgeInsets.symmetric(horizontal: 30.0, vertical: 8.0),
                color: Theme.of(context).primaryColor,
                textColor: Theme.of(context).primaryTextTheme.button.color,
              ),

我试着将其更改为如下所示的某个点:

ElevatedButton(
            child:
                Text(_authMode == AuthMode.Login ? 'LOGIN' : 'SIGN UP'),
            onPressed: _submit,
            style: ButtonStyle(
              shape: MaterialStateProperty.all<RoundedRectangleBorder>(
                RoundedRectangleBorder(
              borderRadius: BorderRadius.circular(30),
                )
              )
            ),

            padding:
                EdgeInsets.symmetric(horizontal: 30.0, vertical: 8.0),
            color: Theme.of(context).primaryColor,
            textColor: Theme.of(context).primaryTextTheme.button.color,
          ),

但是我不知道如何处理paddingcolortextColor

jogvjijk

jogvjijk1#

下面介绍如何将RaisedButton转换为ElevatedButton
ElevatedButton上用途:

  • 对于textColor,请使用Text小工具上的TextStyle
  • 对于圆角,请使用style属性,而不要使用shape
  • 对于color,请使用style属性。
  • 对于padding,请使用style属性。

您的代码应该如下所示:

ElevatedButton(
      style: ElevatedButton.styleFrom(
        padding: EdgeInsets.symmetric(horizontal: 30.0, vertical: 8.0),
        backgroundColor: Theme.of(context).primaryColor,
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.circular(30),
        ),
      ),
      child: Text(
        _authMode == AuthMode.Login ? 'LOGIN' : 'SIGN UP',
        style: TextStyle(
            color: Theme.of(context).primaryTextTheme.button?.color),
      ),
      onPressed: _submit,
    )
另请参见:
6tdlim6h

6tdlim6h2#

试试这个

ElevatedButton(
          child: Text(_authMode == AuthMode.Login ? 'LOGIN' : 'SIGN UP',
           style:TextStyle(color: 
              Theme.of(context).primaryTextTheme.button?.color)),
          onPressed: _submit,
          style: ElevatedButton.styleFrom(
            shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(30)),
            padding: EdgeInsets.symmetric(horizontal: 30.0, vertical: 8.0),
            backgroundColor: Theme.of(context).primaryColor,
          ),
        )

相关问题