getMenuKey method
获取菜单项的 GlobalKey
这个方法在计算二级菜单位置时调用,获取对应菜单项的 GlobalKey 返回的 GlobalKey 可以用于获取菜单项的位置和尺寸
@param index 菜单项的索引位置 @return 对应的 GlobalKey,如果不存在或无效则返回 null
Implementation
GlobalKey? getMenuKey(String index) {
try {
final key = _menuKeys[index];
unawaited(DencendLogger.debug('获取菜单项 GlobalKey: index=$index'));
unawaited(DencendLogger.debug('当前所有 Keys 数量: ${_menuKeys.length}'));
// 检查 GlobalKey 是否仍然有效
if (key != null) {
// 检查 currentContext 是否存在且 mounted 为 true
if (key.currentContext != null && key.currentContext!.mounted) {
return key;
} else {
// GlobalKey 已失效,从映射中移除
_menuKeys.remove(index);
unawaited(DencendLogger.debug('移除无效的 GlobalKey: index=$index'));
return null;
}
}
return null;
} on Exception catch (e) {
unawaited(DencendLogger.debug('获取 GlobalKey 失败: $e'));
return null;
}
}