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

1,730

Solution 1

ScreenUtilInit: builder provides BuildContext on callback,

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

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

Solution 2

If you use ScreenUtilInit, you must have to provide Buildcontext or pass a value in the builder function callback.

Use:

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

or:

return ScreenUtilInit(
        designSize: Size(1080, 2160),
        builder: (_,child) => MaterialApp(
Share:
1,730
Muhammad Zakari
Author by

Muhammad Zakari

Updated on January 04, 2023

Comments

  • Muhammad Zakari
    Muhammad Zakari over 1 year

    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

  • Miriam
    Miriam almost 2 years
    This did not solve the problem for me
  • Yeasin Sheikh
    Yeasin Sheikh almost 2 years
    It depends on version number.