1. 程式人生 > 其它 >flutter 要求在MaterialApp裡的builder寫多個東西例如:外掛等

flutter 要求在MaterialApp裡的builder寫多個東西例如:外掛等

多個的時候可以這麼寫 以同時使用flutter_easyloading 跟 bot_toast這兩個全域性類的外掛為例子

final botToastBuilder = BotToastInit();
final easyload = EasyLoading.init();
 
MaterialApp(
   title: 'xxxx',
   builder: (context, child) {
    child = easyload(context, child);
    child = botToastBuilder(context, child);
    return child;
   }
)

  如果是同時寫一個方法,比如點選空白處鍵盤消失

class MyApp extends StatelessWidget {

  final easyload = EasyLoading.init();

  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      title: 'app名',
      theme: AppTheme.light,
      darkTheme: AppTheme.dark,
      themeMode: ThemeMode.system,
      debugShowCheckedModeBanner: false,
      initialRoute: AppRoutes.Splash,
      getPages: AppPages.routes,
      builder: (context, child){
        child = easyload(context, child);
        child = Scaffold(
            // Global GestureDetector that will dismiss the keyboard
            body: GestureDetector(
            onTap: () => hideKeyboard(context),
        child: child,
        ));
        return child;
      },
      unknownRoute: AppPages.unknownRoute,
      enableLog: true,
      logWriterCallback: Logger.write,
      initialBinding: LayoutBinding(),
    );
  }
}

void hideKeyboard(BuildContext context) {
  FocusScopeNode currentFocus = FocusScope.of(context);
  if (!currentFocus.hasPrimaryFocus && currentFocus.focusedChild != null) {
    FocusManager.instance.primaryFocus.unfocus();
  }
}

  

特此記錄