Konfigurera NavHost
Definiera en navigeringsgraf i Compose.
Konfigurera NavHost är en gratis lektion i Android Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Android Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Android Academy innehåller totalt 4 lektioner.
Navigera mellan skärmar
De flesta appar har mer än en skärm. Biblioteket Navigation Compose låter er navigera mellan composable-skärmar samtidigt som en back stack bevaras.
Beroendet
Lägg till navigationsbiblioteket i er Gradle-fil, så får ni NavController, NavHost och hjälpfunktioner.
// build.gradle (module)
implementation("androidx.navigation:navigation-compose:2.7.0")NavController
NavController är objektet som utför navigeringen och kommer ihåg back stacken. Skapa det med rememberNavController().
val navController = rememberNavController()NavHost
NavHost är en composable som visar den aktuella destinationen. Den behöver controllern och en route för startDestination.
NavHost(
navController = navController,
startDestination = "home"
) {
// destinations go here
}Definiera destinationer
Inuti lambdan för NavHost deklarerar ni varje skärm med composable("route"). Strängen är destinationens route.
composable("home") {
HomeScreen()
}Routes är strängar
En route är ett unikt sträng-ID för en destination, ungefär som en URL-sökväg. Ni navigerar med hjälp av routen, och NavHost visar motsvarande composable.
En graf med två skärmar
Här är en minimal navigeringsgraf med två destinationer. "home" visas först eftersom den är startDestination.
NavHost(navController, startDestination = "home") {
composable("home") { HomeScreen() }
composable("details") { DetailsScreen() }
}startDestination
startDestination är den första skärmen användaren ser och roten (root) i back stacken. Appen kan inte poppa förbi den.
Skicka ned controllern
Skärmar som utlöser navigering behöver NavController. Skicka den som en parameter eller, ännu hellre, skicka enkla lambdas som onContinue för att hålla skärmarna återanvändbara.
composable("home") {
HomeScreen(onOpenDetails = {
navController.navigate("details")
})
}En NavHost per område
Vanligtvis har ni en enda NavHost högst upp i appen. Controllern skapas en gång med rememberNavController() och delas mellan destinationerna.
Sätta ihop det
En komplett konfiguration: controller, host och två destinationer.
@Composable
fun App() {
val navController = rememberNavController()
NavHost(
navController = navController,
startDestination = "home"
) {
composable("home") { HomeScreen() }
composable("details") { DetailsScreen() }
}
}Snabbkontroll
Vilket objekt kommer ihåg back stacken och utför navigeringen?
Sammanfattning
Konfigurera navigering:
rememberNavController()skapar controllern.NavHostvisar destinationer och behöver enstartDestination.- Deklarera skärmar med
composable("route"); routes är unika strängar.
Lär dig Kotlin med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 36
- Lektioner
- 152
Vanliga frågor
Är lektionen ”Konfigurera NavHost” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Android Academy, inklusive ”Konfigurera NavHost”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Android Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Konfigurera NavHost”?
Definiera en navigeringsgraf i Compose. Ni övar på Android Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Android Academy?
Du behöver inga förkunskaper. Utbildningen i Android Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Konfigurera NavHost”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Android Academy-lektionen?
Ja. Varje Android Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Konfigurera NavHost
- Navigera mellan skärmar
- Skicka argument
- Navigering längst ned