Quais são os métodos de navegação na aplicação além do uso da biblioteca de navegação?
sobes.tech IA
Resposta da IA
-
Intenções explícitas: Trocar entre atividades usando
startActivity().// Criar uma intenção para ir para NewActivity val intent = Intent(this, NewActivity::class.java) // Adicionar dados à intenção intent.putExtra("data_key", "some value") // Iniciar a nova atividade startActivity(intent) -
Intenções implícitas: Iniciar atividades de outros aplicativos ou partes do sistema.
// Criar uma intenção para abrir uma página web val webpage: Uri = Uri.parse("http://www.android.com") val webIntent = Intent(Intent.ACTION_VIEW, webpage) // Iniciar a atividade que pode lidar com essa intenção startActivity(webIntent) -
DialogFragment: Uso de caixas de diálogo para mostrar informações ou receber entrada do usuário, que podem levar a ações adicionais ou fechar.
// Criar uma instância de um fragmento de diálogo val myDialogFragment = MyDialogFragment() // Mostrar o diálogo myDialogFragment.show(supportFragmentManager, "my_dialog") -
FragmentTransaction: Gestão manual de fragmentos dentro de uma atividade: adicionar, substituir, remover.
// Obter o FragmentManager val fragmentManager = supportFragmentManager // Iniciar uma transação val fragmentTransaction = fragmentManager.beginTransaction() // Substituir o fragmento atual por um novo fragmentTransaction.replace(R.id.fragment_container, newFragment) // Adicionar a transação ao backstack fragmentTransaction.addToBackStack(null) // Confirmar a transação fragmentTransaction.commit() -
Arquitetura de uma só atividade com gestão manual de fragmentos: Toda a navegação é realizada dentro de uma única atividade por meio da troca de fragmentos exibidos. Isso, na essência, é um uso mais estruturado de
FragmentTransaction. -
Vistas personalizadas: Construção de uma navegação complexa e não padrão usando vistas próprias, que mudam ou modificam o conteúdo de acordo com o estado da aplicação.
| Método de Navegação | Mecanismo principal | Vantagens | Desvantagens |
|---|---|---|---|
| Intenções Explícitas | Iniciar outra Activity por classe | Transição simples entre Activity, transferência de dados | Complexidade com muitas telas |
| Intenções Implícitas | Iniciar Activity por ação/dados | Interação com outras aplicações | Flexibilidade limitada para navegação interna |
| DialogFragment | Exibir janela de diálogo | Exibição simples de janelas modais | Não adequado para navegação principal |
| FragmentTransaction | Gerenciamento do ciclo de vida do Fragment na Activity | Controle flexível de UI | Requer gerenciamento manual do backstack e do estado |
| Arquitetura de uma atividade + Fragmentos | Troca de Fragmentos na Activity | Adequado para aplicações de tela única | Pode ficar complicado com muitas telas |
| Vistas personalizadas | Lógica própria de troca de UI | Máxima flexibilidade e personalização | Alta complexidade de desenvolvimento e manutenção |