-
在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
相关推荐
ujainu18 分钟前
Flutter + OpenHarmony 游戏开发进阶:用户输入响应——GestureDetector 实现点击发射hudawei99641 分钟前
TweenAnimationBuilder和AnimatedBuilder两种动画的比较ujainu1 小时前
Flutter + OpenHarmony 实现无限跑酷游戏开发实战—— 对象池化、性能优化与流畅控制ZH15455891312 小时前
Flutter for OpenHarmony Python学习助手实战:自动化脚本开发的实现晚烛3 小时前
CANN + 物理信息神经网络(PINNs):求解偏微分方程的新范式一起养小猫3 小时前
Flutter for OpenHarmony 实战:扫雷游戏完整开发指南晚烛4 小时前
CANN 赋能智慧医疗:构建合规、高效、可靠的医学影像 AI 推理系统晚霞的不甘4 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?小哥Mark6 小时前
Flutter开发鸿蒙年味 + 实用实战应用|绿色烟花:电子烟花 + 手持烟花一只大侠的侠7 小时前
Flutter开源鸿蒙跨平台训练营 Day 3