Sobes.tech
Middle

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

  1. 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)
    
  2. 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)
    
  3. 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")
    
  4. 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()
    
  5. 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.

  6. 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