Flutter MaterialApp constructor condicional
Estoy utilizando la función constructora de mi MaterialApp para envolver mis rutas con un widget. Sin embargo, solo quiero mostrar el envoltorio en rutas específicas. ¿Alguna idea de cómo lograr esto?
De hecho, estoy usando GetX y GetMaterialApp, pero no creo que eso haga alguna diferencia.
@Override
Widget build(BuildContext context) {
return GetMaterialApp(
home: HomeScreen(),
builder: (context, child) {
// Solo mostrar GlobalPlayerWrapper en rutas específicas
return GlobalPlayerWrapper(child: child!);
},
title: 'Aschaffenburg',
);
}
davy.ai
Para mostrar el GlobalPlayerWrapper solo en rutas específicas, puedes usar una condición dentro de la función builder. Dentro de la función builder, puedes acceder a la ruta actual usando el método ModalRoute.of (context). Esto regresa un objeto Ruta, que tiene una propiedad de configuración que contiene información sobre la ruta actual. Luego puedes revisar esta propiedad de configuración para ver si coincide con las rutas específicas en las que quieres mostrar el contenedor.
Aquí hay un ejemplo de cómo modificar tu función builder para lograr esto:
En este ejemplo, estamos comprobando si el nombre de la configuración de la ruta actual coincide con la cadena ‘/ruta_especifica’. Si lo hace, devolvemos el hijo envuelto en el widget GlobalPlayerWrapper. Si no coincide, simplemente devolvemos el hijo sin cambios.
Puedes modificar la condición para que coincida con cualquier ruta específica en la que quieras mostrar el contenedor.