- 
在pubspec.yaml中引入依赖框架。
#GetX依赖注解
get: ^4.6.5 - 
创建一个SnackBarManager管理类去管理每个提示框。
import 'package:get/get.dart';
import 'package:flutter/material.dart';class SnackBarManager {
factory SnackBarManager() => instance;static final SnackBarManager instance = SnackBarManager._internal();
SnackBarManager._internal();
String _lastMessage = '';
int _lastDuration = 0;
int _lastTime = 0;
void showSnackBar(String title, String message, {Color? backgroundColor, Duration? duration}) {
var currentTime = DateTime.now().millisecondsSinceEpoch;
// 相同消息持续时间内重复提交时,返回
if (currentTime - _lastTime < _lastDuration * 1000 && _lastMessage == message) {
return;
}dismissSnackBar(); Get.snackbar( title, message, backgroundColor: backgroundColor ?? Colors.black12, duration: duration ?? Duration(seconds: 2), // 提示框持续时间 animationDuration: Duration(milliseconds: 0), // 过渡动画的时间,这里设置为0是为了在使用Get.dialog时避免关闭冲突 ); _lastDuration = duration?.inSeconds ?? 2; _lastTime = DateTime.now().millisecondsSinceEpoch; _lastMessage = message;}
void dismissSnackBar() {
Get.closeCurrentSnackbar();
}
} - 
在任意想要的地方,直接调用即可。
SnackBarManager.instance.showSnackBar("蓝牙未开启", "请打开蓝牙");
 - 
效果展示

 
Flutter中Get.snackbar避免重复显示的实现
weixin_411191842025-01-14 13:37
相关推荐
鹏多多7 小时前
解锁flutter弹窗新姿势:dialog-flutter_smart_dialog插件解读+案例西西学代码17 小时前
Flutter---个人信息(5)---持久化存储芝麻开门-新起点18 小时前
Flutter 存储管理:从基础到进阶的完整指南星释18 小时前
鸿蒙Flutter三方库适配指南:10.插件测试Bryce李小白18 小时前
Flutter boost权威指南BigPomme1 天前
Flutter 3.29.0 使用RepaintBoundary或者ScreenshotController出现导出图片渲染上下颠倒问题Pedro1 天前
Flutter - 多版本管理工具FVM未来猫咪花1 天前
保持 Widget.build 内部的纯净初遇你时动了情2 天前
uniapp/flutter中实现苹果IOS 26 毛玻璃效果、跟随滑动放大动画listhi5202 天前
Vue.js 3的组合式API