flutter 获取无上下文的覆盖

kkih6yb8  于 2023-04-13  发布在  Flutter
关注(0)|答案(1)|浏览(154)

我需要从一个服务中引用当前的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。有什么方法可以实现这一点吗?

mrphzbgm

mrphzbgm1#

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

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

您可以用途:

navigatorKey.currentState!.overlay

相关问题