Livro 3 - Projeto Agenda de Contatos - Parte 2
2. Recursos Envolvidos
No desenvolvimento da segunda parte do aplicativo, vamos usar as seguintes tecnologias envolvidas na criação de aplicativos de múltiplas tela. Na primeira parte do projeto foram criados três Fragments para o aplicativo. Nessa segunda parte, vamos lidar com a transição entre as telas e a configuração das interações entre os objetos.
- Navegação entre Fragmentos
- A navegação se refere às interações que permitem aos usuários navegar, entrar e sair de diferentes partes do conteúdo no aplicativo. O componente de navegação do Android Jetpack ajuda a implementar a navegação, desde simples cliques em botões até padrões mais complexos, como barras de aplicativos e a gaveta de navegação.
- Neste aplicativo vamos ter as seguintes transições de tela:
- selecionar um contato para exibição;
- tocar no FloatActionButton de adição (+) do fragmento da lista de contatos;
- tocar nas ações de editar ou salvar o contato exibido no fragmento de detalhes;
- tocar em salvar para finalizar a edição de um contato existente ou a adição de um novo contato
- Componente de Navegação
- Neste projeto vamos fazer o uso dos componentes de arquitetura disponível no Android Jetpack(pacote androidx). Entre eles está o novo componente de navegação, Navigation, que oferece uma solução moderna e simples de se implementar, desde a configuração de gráfico de transições para a programação das transições.
- O componente de navegação consiste de três partes principais, descritas abaixo:
- Grafo de navegação: é um recurso XML que contém todas as informações relacionadas à navegação em um local centralizado. Isso inclui todas as áreas de conteúdo individual no aplicativo (telas), chamadas destinos, e todos os caminhos que podem ser percorridos pelo usuário no aplicativo.
- NavHost: é um contêiner vazio que mostra destinos do gráfico de navegação. O componente de navegação contém uma implementação NavHost padrão, NavHostFragment, que mostra os destinos do fragmento. Esse componente gráfico será adicionado a atividade principal e funcionará como o recipiente a ser preenchido com as telas do aplicativo.
- NavController: é um objeto que gerencia a navegação do aplicativo em um NavHost. O NavController organiza a troca do conteúdo de destino no NavHost conforme os usuários se movem pelo aplicativo.