Android Academy · Lektion

Navigering mellem skærme

Gå frem og tilbage mellem destinationer.

Lektion 2 af 413 trin

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 launchSingleTop og popUpTo { inclusive } til at styre stakken.
  • Send lambd udtryk i stedet for controlleren for at holde skærmene genanvendelige.
Gratis at komme i gang

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

  1. Opsætning af NavHost
  2. Navigering mellem skærme
  3. Videregivelse af argumenter
  4. Navigation i bunden
← Tilbage til Android Academy