Navigering mellem skærme
Gå frem og tilbage mellem destinationer.
Navigering mellem skærme er en gratis Android Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Android Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Android Academy-kurset indeholder 4 lektioner i alt.
Videre frem
Når din NavHost er sat op, går du til en anden skærm ved at kalde navigate på NavController med destinationsruten.
navController.navigate("details")Udløsning fra en knap
Navigation sker normalt i et tilbagekald, f.eks. en knaps onClick.
Button(onClick = { navController.navigate("details") }) {
Text("Open details")
}Tilbage-stakken
Hver navigate lægger den nye destination på tilbage-stakken. Systemets tilbageknap fjerner den automatisk, så du vender tilbage til den forrige skærm.
popBackStack
Hvis du vil gå tilbage programmatisk, f.eks. fra en brugerdefineret "Op"-knap, skal du kalde popBackStack. Den fjerner den aktuelle destination og vender tilbage til den forrige.
navController.popBackStack()navigateUp
navigateUp() ligner denne og er det rigtige valg til værktøjslinjens pil op. Den respekterer navigationshierarkiet.
navController.navigateUp()Undgå duplikerede destinationer
Hvis du trykker hurtigt to gange på en knap, kan den samme skærm blive lagt på stakken to gange. Brug launchSingleTop = true for at undgå flere identiske kopier af en destination på stakken.
navController.navigate("details") {
launchSingleTop = true
}popUpTo
popUpTo rydder en del af tilbage-stakken, mens der navigeres. Det er nyttigt efter login: Gå til startsiden, og fjern loginskærmen, så tilbageknappen ikke vender tilbage til den.
navController.navigate("home") {
popUpTo("login") { inclusive = true }
}inclusive
inclusive = true betyder, at målet for popUpTo også fjernes. Med inclusive = false stopper fjernelsen lige før det.
Hold skærmene afkoblede
I stedet for at sende hele NavController ind i hver skærm skal du sende lambd udtryk. Skærmen kalder onOpenDetails() og kender ikke noget til navigationens interne funktioner.
@Composable
fun HomeScreen(onOpenDetails: () -> Unit) {
Button(onClick = onOpenDetails) { Text("Details") }
}Forbindelse af lambdaen
NavHost forbinder lambdaen med et rigtigt navigate-kald, så navigationslogikken holdes samlet ét sted.
composable("home") {
HomeScreen(onOpenDetails = {
navController.navigate("details")
})
}Sæt det hele sammen
Hjem navigerer til detaljer, og detaljer går tilbage med pilen Op.
composable("home") {
HomeScreen(onOpenDetails = { navController.navigate("details") })
}
composable("details") {
DetailsScreen(onBack = { navController.popBackStack() })
}Hurtigt tjek
Hvilket kald fører brugeren programmatisk tilbage til den forrige skærm?
Opsummering
Navigering:
navigate("route")lægger en destination på stakken.popBackStack()/navigateUp()går tilbage.- Brug
launchSingleTopogpopUpTo { inclusive }til at styre stakken. - Send lambd udtryk i stedet for controlleren for at holde skærmene genanvendelige.
Lær Kotlin med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 36
- Lektioner
- 152
Ofte stillede spørgsmål
Er lektionen “Navigering mellem skærme” gratis?
Ja — alle 3 lektioner i læringssporet Android Academy, inklusive “Navigering mellem skærme”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Android Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Navigering mellem skærme”?
Gå frem og tilbage mellem destinationer. Du øver dig i Android Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Android Academy?
Der kræves ingen tidligere erfaring. Android Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Navigering mellem skærme”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Android Academy-lektion?
Ja. Alle Android Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Opsætning af NavHost
- Navigering mellem skærme
- Videregivelse af argumenter
- Navigation i bunden