Navigare tra le schermate
Si sposti avanti e indietro tra le destinazioni.
Navigare tra le schermate è una lezione Android Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Android Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Android Academy include 4 lezioni in totale.
Andare avanti
Una volta configurato NavHost, può spostarsi a un'altra schermata chiamando navigate su NavController con la route di destinazione.
navController.navigate("details")Attivazione da un pulsante
La navigazione avviene solitamente in un callback, ad esempio nell'onClick di un pulsante.
Button(onClick = { navController.navigate("details") }) {
Text("Open details")
}Lo stack di navigazione
Ogni chiamata a navigate inserisce la nuova destinazione nello stack di ritorno. Il pulsante Indietro del sistema la rimuove automaticamente, riportando alla schermata precedente.
popBackStack
Per tornare indietro a livello programmatico, ad esempio da un pulsante personalizzato "Su", chiami popBackStack. Rimuove la destinazione corrente e torna a quella precedente.
navController.popBackStack()navigateUp
navigateUp() è simile ed è la scelta corretta per la freccia Su della barra degli strumenti. Rispetta la gerarchia di navigazione.
navController.navigateUp()Evitare destinazioni duplicate
Un doppio tocco rapido su un pulsante potrebbe inserire due volte la stessa schermata. Utilizzi launchSingleTop = true per evitare di aggiungere copie duplicate di una destinazione.
navController.navigate("details") {
launchSingleTop = true
}popUpTo
popUpTo cancella una parte dello stack di ritorno durante la navigazione. È utile dopo l'accesso: consente di passare alla schermata iniziale e rimuovere quella di accesso, così il pulsante Indietro non vi riporta.
navController.navigate("home") {
popUpTo("login") { inclusive = true }
}inclusive
inclusive = true indica che viene rimossa anche la destinazione specificata da popUpTo. Con inclusive = false, la rimozione si interrompe subito prima di essa.
Mantenere le schermate disaccoppiate
Anziché passare l'intero NavController a ogni schermata, passi delle lambda. La schermata chiama onOpenDetails() senza conoscere i dettagli interni della navigazione.
@Composable
fun HomeScreen(onOpenDetails: () -> Unit) {
Button(onClick = onOpenDetails) { Text("Details") }
}Collegare la lambda
NavHost collega la lambda a una chiamata reale a navigate, mantenendo la logica di navigazione in un unico punto.
composable("home") {
HomeScreen(onOpenDetails = {
navController.navigate("details")
})
}Mettere tutto insieme
La schermata iniziale porta ai dettagli; dalla schermata dei dettagli si torna indietro con la freccia Su.
composable("home") {
HomeScreen(onOpenDetails = { navController.navigate("details") })
}
composable("details") {
DetailsScreen(onBack = { navController.popBackStack() })
}Verifica rapida
Quale chiamata riporta l'utente alla schermata precedente a livello programmatico?
Riepilogo
Navigazione:
navigate("route")inserisce una destinazione.popBackStack()/navigateUp()consentono di tornare indietro.- Utilizzi
launchSingleTopepopUpTo { inclusive }per controllare lo stack. - Passi lambda, non il controller, per mantenere riutilizzabili le schermate.
Domande Frequenti
La lezione «Navigare tra le schermate» è gratuita?
Sì — il testo completo di «Navigare tra le schermate» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Android Academy, passa a CoddyKit PRO. Il corso Android Academy include 4 lezioni in totale.
Cosa imparerò in «Navigare tra le schermate»?
Si sposti avanti e indietro tra le destinazioni. Eserciti Android Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Android Academy?
Non è richiesta alcuna esperienza precedente. Android Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Navigare tra le schermate»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Android Academy?
Sì. Ogni lezione Android Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Configurare NavHost
- Navigare tra le schermate
- Passare argomenti
- Navigazione inferiore