前提
flutter_screenutilの勉強中にbuilderのエラーが多発したので質問させていただきます。
以下の三つのサイトを参考にしていたところ、builderウィジェットのラップの仕方で同じエラーが出ました。
https://qiita.com/kazukios/items/6c4177aea82938410466
https://zenn.dev/kiiimii/articles/e588de0513c22d
https://qiita.com/1hour/items/c2e1d1c8eaf78a8d615c
問題の解決としては、引数を定義していなかったところを、
builder: (Builder context, Widget) =>
のように引数を二つほど追記した形で定義してあげればエラーは無くなりました。
しかし、三つのサイトで同じようなエラーが出るということが疑問です。
Flutter(Dart?)の仕様が変わって、builderウィジェットのラップする場合は引数を必ず指定しないといけないように変更があったのでしょうか?
発生している問題・エラーメッセージ
The argument type 'MaterialApp Function()' can't be assigned to the parameter type 'Widget Function(BuildContext, Widget?)'.
該当のソースコード
Dart(https://qiita.com/kazukios/items/6c4177aea82938410466)
1import 'package:flutter_screenutil/flutter_screenutil.dart'; 2 3return ScreenUtilInit( 4 designSize: const Size(428, 926), // iPhone13 Pro MAX 5 builder: () { 6 return MaterialApp( 7 title: 'screen util', 8 theme: ThemeData( 9 primaryColor: kPrimaryColor, 10 fontFamily: fontRegular, 11 ), 12 home: HomeScreen(), 13 ); 14 }, 15);
Dart(https://zenn.dev/kiiimii/articles/e588de0513c22d)
1void main() async { 2 WidgetsFlutterBinding.ensureInitialized(); 3 runApp( 4 //Riverpodの設定 5 ProviderScope( 6 child: MyApp(), 7 ), 8 ); 9} 10 11class MyApp extends StatelessWidget { 12 13 Widget build(BuildContext context) { 14 //複数解像度対応 15 return ScreenUtilInit( 16 //ターゲットデバイスの設定 17 designSize: const Size(375, 812), 18 //幅と高さの最小値に応じてテキストサイズを可変させるか 19 minTextAdapt: true, 20 //split screenに対応するかどうか? 21 splitScreenMode: true, 22 builder: () => const MaterialApp( 23 home: Center( 24 child: MessageList(), 25 ), 26 )); 27 } 28}
補足情報(FW/ツールのバージョンなど)
[✓] Flutter (Channel stable, 3.3.8, on macOS 13.0.1 22A400 darwin-arm, locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.3)
[✓] VS Code (version 1.73.0)
回答1件
あなたの回答
tips
プレビュー