The argument type 'MaterialApp Function()' can't be assigned to the parameter type 'Widget Function(BuildContext)'

Issue

I am using flutter_screenutil and
The following code used to work, but it gives me this error when I try to run it:

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,
                ),
          ),
        );
      }),
    );
  }
}

This image shows the error:

this image shows the error

Solution

ScreenUtilInit: builder provides BuildContext on callback,

On line 162 do builder: (_) => MaterialApp or

return ScreenUtilInit(
    designSize: Size(1080, 2160),
    builder: (BuildContext c) => MaterialApp(

Answered By – Yeasin Sheikh

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published