获得没有上下文的覆盖



我需要从无法访问当前上下文的服务中引用当前OverlayState。我试过用"诀窍"从导航键获取我的BuildContext,但是,虽然这适用于对话框和导航,似乎并不适用于这个用例。我尝试了以下方法:

Overlay.of(navigatorKey.currentContext, rootOverlay: false);
Overlay.of(navigatorKey.currentState!.context, rootOverlay: false);
Overlay.of(navigatorKey.currentState!.overlay!.context, rootOverlay: false);

它们都返回null。从小部件(Overlay.of(context))调用的同一段代码返回有效的OverlayState。有什么方法可以做到这一点吗?

如果你真的需要,只要Overlay就可以马上得到。所以不用:

Overlay.of(navigatorKey.currentContext, rootOverlay: false);

你可以使用:

navigatorKey.currentState!.overlay

最新更新