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
相关产品推荐
相关产品推荐

