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:
NavHostFragment.findNavController(Fragment)
Navigation.findNavController(Activity, @IdRes int viewId)
Navigation.findNavController(View)
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.