No Flutter, Navigator é uma ferramenta poderosa para gerenciar estado centralizado e navegação de página em seu aplicativo. Ele permite que você crie aplicativos com arquitetura clara e fácil navegação entre as telas.
Definindo Routes
Para começar a usar Navigator, você precisa definir routes em seu aplicativo. Routes são telas individuais para as quais os usuários podem navegar. Você pode definir routes usando MaterialApp e fornecer uma coleção de routes, onde cada um route é mapeado para um arquivo Widget.
Exemplo:
MaterialApp(
initialRoute: '/',
routes: {
'/':(context) => HomePage(),
'/second':(context) => SecondPage(),
},
)
No exemplo acima, definimos dois routes: '/'(home page)
e '/second'(second page
). Você pode adicionar quantos forem routes necessários.
Navegando entre páginas
Para navegar entre as páginas, você pode usar Navigator os métodos de. Um método comum é pushNamed, que permite navegar para outra página fornecendo o nome dela route.
Exemplo:
// Navigate to the second page
Navigator.pushNamed(context, '/second');
Além disso, você pode usar o método push para navegar para outro route e alternar entre as páginas.
Passando dados entre páginas
Você pode passar dados entre páginas usando o método pushNamed com o parâmetro arguments.
Exemplo:
Navigator.pushNamed(
context,
'/second',
arguments: 'Data from the home page',
);
Em seguida, você pode acessar os dados da segunda página usando o ModalRoute.of e objetos de configuração:
class SecondPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
String data = ModalRoute.of(context).settings.arguments;
// Use the data here
}
}
Voltando à Página Anterior
Para voltar à página anterior, você pode usar o método pop de Navigator. Isso fechará a página atual e retornará à página anterior na pilha.
Exemplo:
// Go back to the previous page
Navigator.pop(context);
Conclusão
Navigator no Flutter permite que você gerencie o estado centralizado e navegue entre as páginas com facilidade. Ao usar o Navigator, você pode criar aplicativos com arquitetura clara e proporcionar uma melhor experiência do usuário ao navegar entre as telas.