closeDialogsAboveLevel static method
关闭指定层级及以上的所有弹窗
level 层级深度
Implementation
static void closeDialogsAboveLevel(
int level, {
DialogReturnTypeEnum? returnType,
}) {
final keysToClose = <String>[];
for (final entry in _dialogLevels.entries) {
final levels = entry.value;
// 检查是否有任何实例的层级 >= level
if (levels.any((l) => l >= level)) {
keysToClose.add(entry.key);
}
}
TCICLog.info(
'Closing dialogs above level $level, count: ${keysToClose.length}',
actionModule: ActionModule.tools.name,
actionName: ActionName.showModalDailog.name,
);
for (final key in keysToClose) {
final contexts = _dialogContexts[key];
if (contexts != null && contexts.isNotEmpty) {
// 关闭该key的所有实例
closeModalDailog(
contexts.first,
key,
returnType: returnType,
closeAll: true,
);
}
}
}