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

Fluttertoast设置backgroundColor为绿色仍显示灰色背景如何解决

Fluttertoast自定义背景色不生效解决方法
  • 原因1:Android 12及以上系统默认启用原生Toast,会强制覆盖自定义背景色参数
    解决:添加platformToast: false参数,强制使用Flutter层渲染的自定义Toast,自定义样式可正常生效
  • 原因2:iOS端默认使用系统样式导致自定义参数失效
    解决:添加useIOSAlertView: false参数,关闭iOS系统原生弹窗样式
  • 原因3:Fluttertoast版本存在已知bug
    解决:将pubspec.yaml中的fluttertoast依赖升级到最新稳定版,执行flutter pub upgrade fluttertoast更新依赖后重新运行项目
  • 原因4:全局默认配置覆盖局部参数
    解决:调用Fluttertoast.cancel()清除已有的Toast缓存后再触发新的Toast提示

修改后可正常生效的代码示例:

Fluttertoast.showToast(
  msg: state.loginModel.message,
  toastLength: Toast.LENGTH_LONG,
  gravity: ToastGravity.BOTTOM,
  timeInSecForIosWeb: 5,
  backgroundColor: Colors.green,
  textColor: Colors.white,
  fontSize: 16.0,
  // 新增以下两个参数
  platformToast: false,
  useIOSAlertView: false
);

如果以上方案仍不生效,可以使用toastBuilder完全自定义Toast样式:

Fluttertoast.showToast(
  msg: state.loginModel.message,
  toastLength: Toast.LENGTH_LONG,
  gravity: ToastGravity.BOTTOM,
  timeInSecForIosWeb: 5,
  toastBuilder: (context) {
    return Container(
      padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12),
      decoration: BoxDecoration(
        color: Colors.green,
        borderRadius: BorderRadius.circular(8),
      ),
      child: Text(
        state.loginModel.message,
        style: const TextStyle(color: Colors.white, fontSize: 16),
      ),
    );
  }
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:15:00