Crea un controller di navigazione

Il controller di navigazione è uno dei concetti chiave della navigazione. Contiene il grafico di navigazione e mostra metodi che consentono alla tua app di spostarsi tra le destinazioni nel grafico.

Quando utilizzi il componente di navigazione, crei un controller di navigazione utilizzando la classe NavController. NavController è l'API di navigazione centrale. Monitora le destinazioni visitate dall'utente e gli consente di spostarsi da una destinazione all'altra. Questa guida illustra come creare un elemento NavController nella tua app.

Per informazioni su come aggiungere un grafico di navigazione a NavController, consulta Progettare il grafico di navigazione. NavController offre diversi modi per raggiungere le destinazioni nel grafico. Per ulteriori informazioni, consulta Raggiungere una destinazione.

Scrivi

Per creare un NavController quando utilizzi Jetpack Compose, chiama rememberNavController():

val navController = rememberNavController()

Devi creare NavController in cima alla tua gerarchia componibile. Deve essere abbastanza alto da consentire a tutti i componibili che devono farvi riferimento.

In questo modo puoi utilizzare NavController come unica fonte attendibile per l'aggiornamento dei componibili al di fuori degli schermi. Ciò segue i principi dell'esplosione di stato.

Visualizzazioni

Se usi il framework dell'interfaccia utente di Views, puoi recuperare il NavController utilizzando uno dei seguenti metodi a seconda del contesto:

Kotlin:

Java:

In genere, ottieni prima un NavHostFragment, poi recupera il valore NavController dal frammento. Lo snippet riportato di seguito lo dimostra:

Kotlin

val navHostFragment =
    supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController

Java

NavHostFragment navHostFragment =
    (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
NavController navController = navHostFragment.getNavController();

Continua a leggere

  • Progetta il grafico di navigazione: una guida che spiega in dettaglio come aggiungere a NavController un grafico contenente tutte le destinazioni nella tua app.
  • Raggiungere una destinazione: una guida che spiega nei dettagli come utilizzare NavController per spostarsi tra le destinazioni nel grafico di navigazione.