Jetpack Compose Academy · Lektion

Composable-destinationer og routes

Registrér hver skærm som en route.

Lektion 2 af 413 trin

Composable-destinationer og routes er en gratis Jetpack Compose Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Jetpack Compose Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Jetpack Compose Academy-kurset indeholder 4 lektioner i alt.

Skærme som destinationer

Hver skærm i din graf er en destination. Du registrerer den med composable-builderen inde i NavHost og navngiver den med en rute.

composable("home") { HomeScreen() }

Hvad en rute egentlig er

En route er en unik strengnøgle til en destination. Compose sammenligner den streng, du navigerer til, med de ruter, du har deklareret.

Gem ruter i konstanter

Slåfejl i rå strenge giver stille fejl. Gem hver rute som en constant, så compileren opdager fejlene for dig.

object Routes {
    const val HOME = "home"
    const val SETTINGS = "settings"
}

En sealed class med skærme

I større apps samler en sealed class alle ruter ét sted. Det gør det sikkert og nemt at finde ud af, når du tilføjer skærme.

sealed class Screen(val route: String) {
    object Home : Screen("home")
    object Settings : Screen("settings")
}

Registrér hver destination

Angiv hver skærm i sin egen composable-blok. Lambdaens krop er den brugerflade, der vises, når ruten bliver aktiv.

NavHost(navController, startDestination = Screen.Home.route) {
    composable(Screen.Home.route) { HomeScreen() }
    composable(Screen.Settings.route) { SettingsScreen() }
}

Navigér til en rute

Brug den samme rutestreng til at navigere dertil. NavController finder den matchende destination, og NavHost renderer den.

navController.navigate(Screen.Settings.route)

Ruter skal være unikke

To destinationer kan ikke dele en rute. Hver route er en adresse, og dublerede adresser gør navigationen tvetydig og upålidelig.

Giv controlleren videre

Skærme udløser ofte navigation, så giv hver destination en måde at navigere på. Et almindeligt mønster er at give lambdafunktioner videre i stedet for hele controlleren.

composable("home") {
    HomeScreen(onOpenSettings = { navController.navigate("settings") })
}

Hold skærmene løst koblede

Hvis du giver lambdas videre i stedet for NavController, forbliver skærmene testbare og genanvendelige. Skærmen angiver, hvad der skete, ikke hvordan der skal navigeres.

Ruter ligner URL'er

Betragt ruter som små URL'er. Denne stil bliver nyttig senere, når du tilføjer argumenter og dybe links, der åbner ruter udefra appen.

Gruppér relaterede flows

Når grafer vokser, kan du opdele skærmene i nested graphs med deres egne ruter. Det holder en funktions destinationer ryddelige og selvstændige.

Hurtigt tjek

Hvorfor foretrække konstanter eller en sealed class til ruter?

Opsummering

Du har lært, at hver skærm er en destination med en unik rute, og at konstanter eller en sealed class holder disse ruter sikre og organiserede. 🗂️

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
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Composable-destinationer og routes” gratis?

Ja — hele teksten til “Composable-destinationer og routes” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Jetpack Compose Academy-kurset, skal du opgradere til CoddyKit PRO. Jetpack Compose Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Composable-destinationer og routes”?

Registrér hver skærm som en route. Du øver dig i Jetpack Compose 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å Jetpack Compose Academy?

Der kræves ingen tidligere erfaring. Jetpack Compose 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 “Composable-destinationer og routes”?

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 Jetpack Compose Academy-lektion?

Ja. Alle Jetpack Compose 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. NavController og NavHost
  2. Composable-destinationer og routes
  3. Videregivelse af argumenter mellem skærme
  4. Back stack og deep links
← Tilbage til Jetpack Compose Academy