【问题标题】:Flutter MaterialApp conditional builderFlutter MaterialApp 条件构建器
【发布时间】:2022-01-03 18:19:51
【问题描述】:

我正在使用 MaterialApp 的构建器功能来用小部件包装我的路线。 但我只想在特定路线上显示包装器。 知道如何实现这一目标吗?

其实我用的是GetX和GetMaterialApp,但我觉得没什么区别。

 @override
 Widget build(BuildContext context) {

    return GetMaterialApp(
       home: HomeScreen(),

       builder: (context, child) {
          //Only show GlobalPlayerWrapper on specific routes
         return GlobalPlayerWrapper(child: child!);
       },

       title: 'Aschaffenburg',
     );
 }

【问题讨论】:

    标签: flutter dart routes flutter-getx


    【解决方案1】:

    您可以使用 MaterialApp 的 onGenerateRoute 回调根据路由生成不同的结果:

    return MaterialApp(
          onGenerateRoute: (RouteSettings settings) {
              switch (settings.name) {
                  case'/':
                     return MaterialPageRoute(builder: (_) => HomeScreen());
                  case '/otherPage':
                     /* return other page route with your wrapper*/
              }
          },
          initialRoute: MateriealPageRoute(builder:(_) => HomeScreen()),
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-07
      • 1970-01-01
      • 2021-08-23
      • 2022-01-10
      • 1970-01-01
      • 2020-09-22
      • 2018-09-04
      • 1970-01-01
      相关资源
      最近更新 更多