Il controller di navigazione è uno dei concetti chiave della navigazione. it contiene il grafico di navigazione ed espone i metodi che consentono lo spostamento dell'app tra le destinazioni nel grafico.
Quando utilizzi il componente Navigazione, crei un controller di navigazione.
utilizzando il corso NavController
. NavController
rappresenta la parte centrale
l'API di navigazione. Monitora le destinazioni che l'utente ha visitato e consente
all'utente di spostarsi tra le destinazioni. Questa guida illustra come creare un
NavController
nella tua app.
Per informazioni su come aggiungere un grafico di navigazione a NavController
, consulta
Progetta il grafico di navigazione. NavController
offre diversi modi
per raggiungere le destinazioni nel grafico. Per ulteriori informazioni, vedi Navigare verso un
destinazione.
Compose
Per creare un NavController
quando utilizzi Jetpack Compose, chiama
rememberNavController()
:
val navController = rememberNavController()
Devi creare NavController
nella gerarchia componibile. it
deve essere abbastanza alto affinché tutti i componibili che devono
farvi riferimento possano
farlo.
In questo modo puoi utilizzare NavController
come unica fonte attendibile per
aggiornare i componenti componibili al di fuori dei tuoi schermi. Ciò segue i principi di
sollevamento dello stato.
Visualizzazioni
Se utilizzi il framework dell'interfaccia utente di Views, puoi recuperare il tuo 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, prima ricevi un NavHostFragment
, poi recuperi il codice
NavController
dal frammento. Lo snippet seguente dimostra che:
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
- Progettare il grafico di navigazione: una guida che spiega nel dettaglio come aggiungere un grafico
al tuo
NavController
che contiene tutte le destinazioni nella tua app. - Raggiungi una destinazione: una guida che spiega nel dettaglio come utilizzare
NavController
per spostarti tra le destinazioni nel grafico di navigazione.