• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
LDLX@Y火星
博客园    首页    新随笔    联系   管理    订阅  订阅

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

  

特此记录

posted @ 2021-07-15 09:28  火星黑洞  阅读(2310)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3