【发布时间】:2023-01-30 21:22:22
【问题描述】:
我想在整个应用程序上显示一个叠加层,所以我尝试在 MaterialApp(根小部件)的上下文中插入一个叠加层条目,但问题是我在调用以下方法时得到了空值:
Overlay.of(context);
GetMaterialApp.router(
debugShowCheckedModeBanner: false,
theme: AppTheme.lightTheme,
scaffoldMessengerKey: Keys.scaffold,
scrollBehavior: MyCustomScrollBehavior(),
routeInformationParser: WebRoutes.goRouter.routeInformationParser,
routerDelegate: WebRoutes.goRouter.routerDelegate,
routeInformationProvider: WebRoutes.goRouter.routeInformationProvider,
builder: (context, child) {
WidgetsBinding.instance.addPostFrameCallback((_){
addOverlay(context);
});
return child;
}
void addOverlay(BuildContext context) {
print(Overlay.of(context));
return Overlay.of(context)?.insert(OverlayEntry(
builder: (context) {
return SomeWidget();
},
));
}
有什么方法可以使用此根小部件的上下文来获取覆盖状态,因为我想在全局范围内显示覆盖。
非常感谢,如果有人帮助我,我真的很感激。
【问题讨论】:
-
您遇到的错误是什么?
-
我得到了空值,我没有覆盖我传递的上下文。
-
Overlay.of(context) 这个方法返回null。
-
我认为您正在使用没有 Material aap 的上下文调用叠加层。我无法准确告诉您,请分享您在调用叠加层后遇到的确切错误/异常