show method
Implementation
void show(
String message, {
ComToastConfig? config,
bool skipDuplicateFilter = false, // 可选:跳过重复过滤
}) {
// 合并配置以获取最终类型
final finalConfig = _mergeConfigs(config);
// 自动过滤空消息(但custom类型例外,因为它们使用builder构建内容)
if (message.trim().isEmpty && finalConfig.type != ComToastType.custom) {
return;
}
// 1秒内相同消息自动过滤(可跳过)
if (!skipDuplicateFilter) {
final now = DateTime.now();
if (_lastMessage == message &&
_lastShowTime != null &&
now.difference(_lastShowTime!).inMilliseconds <
_duplicateFilterDuration) {
return;
}
// 记录当前消息和时间
_lastMessage = message;
_lastShowTime = now;
}
// 如果有正在显示的Toast,立即替换
if (_overlayManager.isToastShowing) {
_dismissCurrent();
}
_showToast(message, finalConfig);
}