A navegação e o roteamento são partes essenciais do desenvolvimento de aplicativos. No Flutter, a navegação e o roteamento são gerenciados com a ajuda do widget Navigator e das rotas. A navegação se refere ao processo de mover-se entre diferentes telas de um aplicativo, enquanto o roteamento se refere ao mapeamento de URLs ou outros identificadores para telas específicas. Este capítulo abordará a navegação com parâmetros opcionais no Flutter.

Para começar, é importante entender o que são parâmetros opcionais. Em Dart, os parâmetros opcionais são argumentos que você pode passar para uma função, mas não são necessários. Isso é útil quando você tem uma função que pode aceitar vários argumentos, mas você só precisa passar alguns deles. No contexto da navegação no Flutter, os parâmetros opcionais são usados para passar dados entre as telas.

No Flutter, a navegação entre as telas é feita através do widget Navigator. O widget Navigator funciona como uma pilha, onde você pode empurrar (push) novas rotas para a pilha e elas serão exibidas na tela. Quando você quer voltar para a tela anterior, você pode estourar (pop) a rota atual da pilha.

Para passar dados entre as telas, você pode usar os parâmetros opcionais. Por exemplo, vamos supor que você tem uma lista de itens, e quando o usuário clica em um item, você quer navegar para uma nova tela que mostra os detalhes desse item. Você pode passar o item como um parâmetro opcional para a nova rota.

Aqui está um exemplo de como você pode fazer isso:

Navigator.push(
  context,
  MaterialPageRoute(
    builder: (context) => DetailScreen(item: item),
  ),
);

Na função acima, estamos empurrando uma nova rota para a pilha do Navigator. A nova rota é criada usando a função MaterialPageRoute, que aceita uma função builder. A função builder é usada para construir a tela que será exibida. No nosso caso, estamos construindo uma tela DetailScreen e passando o item como um parâmetro opcional.

Na tela DetailScreen, você pode acessar o item passado como um parâmetro opcional da seguinte maneira:

class DetailScreen extends StatelessWidget {
  final Item item;

  DetailScreen({Key key, @required this.item}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(item.name),
      ),
      body: Padding(
        padding: EdgeInsets.all(16.0),
        child: Text(item.description),
      ),
    );
  }
}

Na classe DetailScreen, estamos definindo o item como um campo final, o que significa que ele deve ser inicializado quando a classe é instanciada. Estamos usando o construtor da classe para inicializar o item, e estamos marcando o item como @required, o que significa que ele deve ser fornecido quando a classe é instanciada.

Em seguida, estamos usando o item para construir a interface do usuário na função build. Estamos usando o nome do item como o título da AppBar e a descrição do item como o texto do corpo.

Em resumo, a navegação com parâmetros opcionais no Flutter é uma maneira poderosa de passar dados entre as telas. Ao combinar o poder do widget Navigator com os parâmetros opcionais do Dart, você pode criar aplicativos complexos com várias telas e dados dinâmicos.

Agora responda o exercício sobre o conteúdo:

O que são parâmetros opcionais no contexto da navegação no Flutter e como eles são usados?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Navegação e roteamento em Flutter: Navegação com animações

Próxima página do Ebook Gratuito:

99Navegação e roteamento em Flutter: Navegação com animações

3 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto