You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何设置SnackBarAction的水波纹颜色?

修改SnackBarAction的水波纹颜色

完全可行,这里提供两种实用方案:

方案一:局部Theme覆盖

SnackBarAction的水波纹颜色由Theme的splashColor控制,给SnackBar套一层局部Theme即可修改:

var snackBar = Theme(
  data: Theme.of(context).copyWith(
    splashColor: Colors.pink, // 设置粉色水波纹
    highlightColor: Colors.pink.withOpacity(0.3), // 可选:按压时的高亮颜色
  ),
  child: SnackBar(
    content: const Text("Task removed!"),
    duration: const Duration(seconds: 3),
    action: SnackBarAction(
      textColor: Colors.purple,
      label: "Desfazer",
      onPressed: () {
        setState(() {
          _taskList.insert(index, _lastItemRemoved);
        });
        _saveFile();
      },
    ),
  ),
);
ScaffoldMessenger.of(context).showSnackBar(snackBar);

方案二:自定义Action组件

如果想更灵活控制,直接用TextButton替代原生SnackBarAction,自行指定水波纹参数:

var snackBar = SnackBar(
  content: const Text("Task removed!"),
  duration: const Duration(seconds: 3),
  action: TextButton(
    style: TextButton.styleFrom(
      splashColor: Colors.pink,
      highlightColor: Colors.pink.withOpacity(0.3),
      padding: const EdgeInsets.symmetric(horizontal: 16),
    ),
    onPressed: () {
      setState(() {
        _taskList.insert(index, _lastItemRemoved);
      });
      _saveFile();
    },
    child: const Text("Desfazer", style: TextStyle(color: Colors.purple)),
  ),
);
ScaffoldMessenger.of(context).showSnackBar(snackBar);

内容的提问来源于stack exchange,提问作者pllsatierf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 20:02:50