问题描述
我在我的应用程序中使用 Riverpod
作为全局状态管理器;在这种情况下,我使用它来处理应用程序的启动:如果设备上有配置文件,它将根据用户的角色直接转到一个屏幕,如果没有这样的配置文件,它会将我们发送到登录屏幕。
======== Exception caught by widgets library =======================================================
The following assertion was thrown building Tooltip("Open navigation menu",dirty,state: _TooltipState#4e2ac(ticker inactive)):
No Overlay widget found.
Tooltip widgets require an Overlay widget ancestor for correct operation.
The most common way to add an Overlay to an application is to include a MaterialApp or Navigator widget in the runApp() call.
The specific widget that Failed to find an overlay was: Tooltip
"Open navigation menu"
The relevant error-causing widget was:
AppBar file:///home/luisalaguna/Projects/thesis_cancer/lib/core/presentation/widgets/header.dart:17:12
When the exception was thrown,this was the stack:
#0 Overlay.of.<anonymous closure> (package:Flutter/src/widgets/overlay.dart:306:9)
#1 Overlay.of (package:Flutter/src/widgets/overlay.dart:309:6)
#2 _TooltipState.build (package:Flutter/src/material/tooltip.dart:457:20)
#3 StatefulElement.build (package:Flutter/src/widgets/framework.dart:4612:27)
#4 ComponentElement.performRebuild (package:Flutter/src/widgets/framework.dart:4495:15)
Header 是一个 AppBar 小部件;如果所有小部件都没有被 Scaffold 和 MaterialApp 小部件包裹,这个错误就不会奇怪了:
class CancerApp extends HookWidget {
@override
Widget build(BuildContext context) {
final _appRouter = AppRouter();
final bool darkTheme = useProvider(darkThemeProvider);
final launcherState = useProvider(launcherProvider);
SystemChrome.setEnabledsystemUIOverlays([systemUIOverlay.bottom]);
return MaterialApp.router(
title: 'Thesis Cancer',theme: darkTheme ? ThemeData.dark() : ThemeData.light(),routerDelegate: _appRouter.delegate(),routeinformationParser: _appRouter.defaultRouteParser(),// home: SplashScreen()
builder: (context,router) => launcherState.when(
loading: () => SplashScreen(),needsProfile: () => LoginPage(),profileLoaded: () => MainScreen()),);
}
}
在对这个工作流程进行 rafactoring 之后,我遇到了这个错误,当 profileLoaded
状态返回用户时我没有得到它(我遇到了另一个问题)。
可能是什么问题?
解决方法
在您的主题上添加 applyElevationOverlayColor: true,