浮动操作按钮:如何像 RaisedButton 一样更改启动颜色和突出显示颜色?

Floating action button: how to change the splash color and highlight color like in a RaisedButton?

我看到 FAB 采用的启动颜色和高亮颜色与 MaterialApp 小部件中的参数颜色相关联。有没有办法覆盖这些颜色?我只找到前景色和背景色,而这些不是我想要的。谢谢

如果您查看 FloatingActionButton 的源代码,启动颜色与应用程序的主题相关,因此您可以仅为按钮更改主题,如下所示:

Theme(
  data: Theme.of(context).copyWith(highlightColor: Colors.yellow),
  child: FloatingActionButton(
    backgroundColor: Colors.red,
    onPressed: () {},
    child: Text("hello world"),
 ),
)

虽然当前答案适用于设置单个 FloatingActionButton 的突出显示颜色,但您还可以全局定义启动颜色和突出显示颜色。可以直接为 FloatingActionButton 定义初始颜色,不过,突出显示颜色来自您的主题。

final theme = ThemeData(
  highlightColor: Colors.white.withOpacity(0.25),
  ...,
  floatingActionButtonTheme: FloatingActionButtonThemeData(
    splashColor: Colors.white.withOpacity(0.25),
    ...,
  ),
);

然后,只需像这样

将您的主题添加到您的 MaterialApp

  MaterialApp(
    theme: theme,
    ...,
  )