Flutter - navegación entre pantallas - Login y NavigationBar - Go router

Rafinha_19

Hola amigos,

Llevo un tiempo desarrollando una app y tengo un problema serio al que no se como poner solución. La app es totalmente funcional solo que estoy tratando de mejorar cosas para que se vea más profesional.

Mi app tiene una pantalla de login que permite al usuario iniciar sesión o crearse una cuena. Si todo funciona bien redirecciona al usuario a una pantalla principal en la que hay un NavigationBar que permite al usuario acceder a las 3 pantallas principales de la app y a partir de ahí navegar como quiera.

En mi app base, una vez entras desde estas 3 pantallas principales a cualquier subpantalla (por ejemplo el perfil de un usuario) la barra de navegación inferior desaparece. Además al utilizar el MaterialPageRoute el context no se comparte y tengo que hacer filigranas como la que vais a ver a continucación para poder utilizar mis provider:

return ChangeNotifierProvider.value(
                                value: friend_provider,
                                child: ChangeNotifierProvider.value(
                                    value: friendRequest_provider,
                                    child: ChangeNotifierProvider.value(
                                        value: userList_provider,
                                        child: ChangeNotifierProvider.value(
                                            value: friendsPosts_provider,
                                            child: friendsProfileView()))))

Como véis ni es cómodo ni funciona del todo bien ya que lo que busco es que la barra inferior se mantenga estática y la puedas utilizar para navegar independientemente de la pantalla en la que estés.

Buscando por internet encontré el goRouter y con esta plantilla https://codewithandrea.com/articles/flutter-bottom-navigation-bar-nested-routes-gorouter/ he conseguido recrear el comportamiento que deseo de poder navegar entre pantallas y que se mantenga la barra para poder seguir utilizándola independientemente del lugar en el que esté. Además de que aquí el context se mantiene para toda la app y no hay que hacer las filigranas para poder utilizar los providers.

Mi duda está en como puedo poner mi pantalla de login y signup previa a la navigation bar. Estoy seguro que hay mil ejemplos ya hechos pero llevo todo el día y no encuentro ni uno.

Disculpadme si suena a una pregunta muy básica pero todo lo que sé de flutter es lo que aprendí haciendo el TFG (que fué esta app que estoy tratando de mejorar) y no tengo una base sólida en el framework ya que aprendí a base de stackoverflow y demás.

Un saludo y gracias de antemano!

Usuarios habituales

  • Rafinha_19