如何在按钮中更改按钮主题的背景色,文本颜色和高度?

时间:2019-12-25 05:21:26

标签: flutter dart

我在我的项目中使用Button主题,无法更改背景颜色,文本颜色,也无法降低按钮主题的高度,有人可以查看它吗。

这是我的代码:

Widget _signInButton() {


    return ButtonTheme(

     minWidth: 325,

      child: OutlineButton(
        splashColor: Colors.grey,
        onPressed: () {
          signInWithGoogle().whenComplete(() {
            Navigator.of(context).push(
              MaterialPageRoute(
                builder: (context) {
                  return FirstScreen();
                },
              ),
            );
          });
        },
        shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(40)),
        highlightElevation: 0,
        borderSide: BorderSide(color: Colors.grey),
        child: Padding(
          padding: const EdgeInsets.fromLTRB(0, 10, 0, 10),
          child: Row(
            mainAxisSize: MainAxisSize.min,
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Flexible(
                  flex: 1,
                  child: Image(image: AssetImage("Assets/google_logo.png"), height: 35.0)),
              Expanded(
                flex: 1,
                child: Padding(
                  padding: const EdgeInsets.only(left: 10),
                  child: Text(
                    'Sign in with Google',
                    style: TextStyle(
                      fontSize: 15,
                      color: Colors.grey,

1 个答案:

答案 0 :(得分:2)

尝试在height: 8.0中添加layoutBehavior:ButtonBarLayoutBehavior.constrainedButtonTheme。 使用这些选项中的任何一个,您都可以调整按钮的高度和填充。

注意:根据需要调整高度值。我已将其设置为8.0

您可以使用buttonColor中的ButtonTheme属性来更改按钮的颜色。或“子按钮”中的color属性应该可以完成工作。

但是,由于您使用的是OutlineButton,因此它无法工作,因为它没有可以在上面绘制颜色的区域,它只有一个轮廓。

注意: 您应将OutlineButton替换为RaisedButton

对于文本颜色,您可以使用style小部件的Text属性。

一些示例代码如下:

ButtonTheme(
height: 8.0,
buttonColor: Colors.red,
child: RaisedButton(
         color: Colors.blue,
         child: Text(
           'Button',
           style: TextStyle(color: Colors.white),
          ),
          onPressed: () {},
       ),
)