3

I am using the builder function of my MaterialApp to wrap my routes with a widget. But I only want to show the wrapper on specific routes. Any idea how to achieve this?

Actually I am using GetX and GetMaterialApp, but I don't think that it makes any difference.

 @override
 Widget build(BuildContext context) {

    return GetMaterialApp(
       home: HomeScreen(),

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

       title: 'Aschaffenburg',
     );
 }
Martin Seubert
  • 978
  • 3
  • 21
  • 37

1 Answers1

0

You coul use MaterialApp's onGenerateRoute callback to generate different results depending on the route:

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()),
);
MindStudio
  • 706
  • 1
  • 4
  • 13