参数类型 '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(