如何在 Flutter 中禁用默认的 Widget 飞溅效果

2021-08-09 18:01:46 浏览数 (1)

默认情况下,许多 Flutter Material Design 小部件在被选中时会显示飞溅效果。

这适用于`IconButton`,`InkWell`,`ListTile`和许多其他部件。

如果您正在创建一个完全自定义的设计并希望在**整个应用程序范围内**禁用此**功能**,您需要做的就是:

代码语言:javascript复制
MaterialApp(
  theme: ThemeData(
    splashColor: Colors.transparent,
    highlightColor: Colors.transparent,
    hoverColor: Colors.transparent,
  ),
)

或者,您可以通过插入父`Theme`小部件将其应用于某个小部件子树:

代码语言:javascript复制

Theme(
  data: Theme.of(context).copyWith(
    splashColor: Colors.transparent,
    highlightColor: Colors.transparent,
    hoverColor: Colors.transparent,
  )
  child: child,
)

您还可以直接为特定小部件禁用此功能:

代码语言:javascript复制
IconButton(
  splashColor: Colors.transparent,
  highlightColor: Colors.transparent,
  hoverColor: Colors.transparent,
  icon: someIcon,
  onPressed: someCallback,)

0 人点赞