Flutter 2.0 - 如何在按下时更改文本按钮的初始颜色

时间:2021-04-06 08:14:01

标签: flutter dart flutter-layout

FlatButton is deprecated and shouldn't be used. Used TextButton instead.

在我之前的 FlatButton 小部件上,我能够在按下时更改初始颜色。但是现在我正在使用 TextButton 小部件,如何在 MaterialApp ThemeData 或直接在 TextButton 小部件上以有效的方式更改其颜色。

目前这是我的 TextButton

TextButton(
  style: TextButton.styleFrom(
    primary: Colors.red,
    textStyle: TextStyle(
      color: Colors.black45,
      fontFamily: "Courier Prime",
    ),
    backgroundColor: Colors.transparent,
  ),
  onPressed: () {},
  child: Text(
    "Student",
    style: TextStyle(fontWeight: FontWeight.bold),
  ),
),

overlayColor is used to indicate that the button is focused, hovered, or pressed. 但我找不到这个 overlayColor

3 个答案:

答案 0 :(得分:2)

首先请记住,TextButton 上的主要属性设置其文本和图标的颜色。它不会改变波纹颜色。其次在 Textbutton 中没有直接的属性来改变初始颜色。因此,如果您想将初始颜色更改为透明,您可以这样做。

TextButton(
  style: ButtonStyle(
    overlayColor: MaterialStateProperty.all(Colors.________),
  ),
)

答案 1 :(得分:1)

TextButton(            
 style: ButtonStyle(
  overlayColor: MaterialStateColor.resolveWith((states) => Colors.red),
  ),
 child: ..., 
)

参考Flutter TextButton splashColor property

答案 2 :(得分:0)

您可以像这样更改 Splash 颜色:

            Theme(
              data: ThemeData(
                splashColor: Colors.red,
                highlightColor: Colors.black.withOpacity(.5),
              ),
              child: ListTile(
                  title: Text(
                    "New theme splash",
                    textAlign: TextAlign.center,
                  ),
                  onTap: () {}),
            ),