参数类型 'MaterialApp Function()' 无法分配给参数类型 'Widget Function(BuildContext)'
The argument type 'MaterialApp Function()' can't be assigned to the parameter type 'Widget Function(BuildContext)'
我正在使用 flutter_screenutil
并且
以下代码曾经有效,但是当我尝试 运行 它时它给了我这个错误:
Error: The argument type 'MaterialApp Function()' can't be assigned to the parameter type 'Widget Function(BuildContext)'.
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
return MultiProvider(
providers: [
ChangeNotifierProvider(
create: (_) {
return themeChanger;
},
),
ChangeNotifierProvider(
create: (_) {
return settingChanger;
},
),
ChangeNotifierProvider(create: (_) {
return locationChanger;
})
],
child: Consumer2<DarkThemeProvider, AdvancedSettingsProvider>(
builder: (context, value1, value2, child) {
return
ScreenUtilInit(
designSize: Size(1080, 2160),
builder: () =>
MaterialApp(
builder: (context, widget) {
ScreenUtil.setContext(context);
return MediaQuery(
data: MediaQuery.of(context).copyWith(textScaleFactor: 1),
child: widget!);
},
theme: Styles.themeData(
themeChanger.darkTheme, context, themeChanger.color),
debugShowCheckedModeBanner: false,
home: (widget.payload.isEmpty)
? Skeleton()
[enter image description here][1] : AccessedByNotifPage(
payload: widget.payload,
),
),
);
}),
);
}
}
此图显示错误:
在您的代码中只需更改
builder: (context, value1, value2, child){
和
create: (context, value1, value2, child) {
ScreenUtilInit: builder
提供 BuildContext
回调,
在第 162 行做 builder: (_) => MaterialApp
或
return ScreenUtilInit(
designSize: Size(1080, 2160),
builder: (BuildContext c) => MaterialApp(
ScreenUtilInit(
designSize: const Size(360, 740),
builder: (BuildContext context, child) => MaterialApp(
))
如果您使用 ScreenUtilInit,您必须提供 Buildcontext 或在构建器函数回调中传递一个值。
使用:
return ScreenUtilInit(
designSize: Size(1080, 2160),
builder: (BuildContext context,child) => MaterialApp(
或:
return ScreenUtilInit(
designSize: Size(1080, 2160),
builder: (_,child) => MaterialApp(
我正在使用 flutter_screenutil
并且
以下代码曾经有效,但是当我尝试 运行 它时它给了我这个错误:
Error: The argument type 'MaterialApp Function()' can't be assigned to the parameter type 'Widget Function(BuildContext)'.
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
return MultiProvider(
providers: [
ChangeNotifierProvider(
create: (_) {
return themeChanger;
},
),
ChangeNotifierProvider(
create: (_) {
return settingChanger;
},
),
ChangeNotifierProvider(create: (_) {
return locationChanger;
})
],
child: Consumer2<DarkThemeProvider, AdvancedSettingsProvider>(
builder: (context, value1, value2, child) {
return
ScreenUtilInit(
designSize: Size(1080, 2160),
builder: () =>
MaterialApp(
builder: (context, widget) {
ScreenUtil.setContext(context);
return MediaQuery(
data: MediaQuery.of(context).copyWith(textScaleFactor: 1),
child: widget!);
},
theme: Styles.themeData(
themeChanger.darkTheme, context, themeChanger.color),
debugShowCheckedModeBanner: false,
home: (widget.payload.isEmpty)
? Skeleton()
[enter image description here][1] : AccessedByNotifPage(
payload: widget.payload,
),
),
);
}),
);
}
}
此图显示错误:
在您的代码中只需更改
builder: (context, value1, value2, child){
和
create: (context, value1, value2, child) {
ScreenUtilInit: builder
提供 BuildContext
回调,
在第 162 行做 builder: (_) => MaterialApp
或
return ScreenUtilInit(
designSize: Size(1080, 2160),
builder: (BuildContext c) => MaterialApp(
ScreenUtilInit(
designSize: const Size(360, 740),
builder: (BuildContext context, child) => MaterialApp(
))
如果您使用 ScreenUtilInit,您必须提供 Buildcontext 或在构建器函数回调中传递一个值。
使用:
return ScreenUtilInit(
designSize: Size(1080, 2160),
builder: (BuildContext context,child) => MaterialApp(
或:
return ScreenUtilInit(
designSize: Size(1080, 2160),
builder: (_,child) => MaterialApp(