我将应用程序包装在滚动配置中以移除滚动发光。这一直有效,但自从我使用 flutter 已经有一段时间了,所以我创建了一个新项目,但它出现了这个错误。
ProviderScope(
child: MaterialApp(
title: 'testing',
themeMode: ThemeMode.light,
darkTheme: darkTheme(),
theme: lightTheme(),
onGenerateRoute: RouteGenerator.generateRoute,
initialRoute: '/',
builder: (context, child) {
return ScrollConfiguration(
behavior: RemoveScrollGlow(),
child: child,
);
},
)
)
问题是孩子:孩子。我不知道如何解决这个问题。
class RemoveScrollGlow extends ScrollBehavior {
@override
Widget buildOverscrollIndicator(
BuildContext context, Widget child, ScrollableDetails details) {
return child;
}
}
答案 0 :(得分:4)
如果您确定该值永远不会为空,则可以将其强制转换为不可为空的类型,即。 Widget
明确。或者简单地添加一个 !
后缀,如下所示:child!
。
答案 1 :(得分:0)
您已在项目中启用了空安全。并且您的 child
具有 Widget?
类型,其中作为 ScrollConfiguration
的子代需要 Widget
类型。
Widget
和 Widget?
有什么区别?
Widget?
表示它可以有空值,而 Widget
的类型是非空的。
在 https://dart.dev/null-safety 阅读更多
答案 2 :(得分:-1)
您会更新 dart SDK 版本,因此您的项目中包含空安全。
解决方法很简单,只需转到您的 pubspec.yaml 文件,然后在环境变量下,您会找到 dart SDK 范围,它应该是这样的 sdk:">=2.12.0 <3.0.0"。
现在您只需将其从 2.12.0 更改为 2.7.0,这将使您的项目能够在没有空安全的情况下运行,并使您的项目无错误。所以更新后的 sdk 版本应该看起来像 sdk: ">=2.7.0 <3.0.0"。
希望能帮到你。