Nawigowanie między ekranami
Przechodź do kolejnych miejsc docelowych i wracaj do poprzednich
Nawigowanie między ekranami to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Android Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Android Academy zawiera 4 lekcji w sumie.
Przechodzenie dalej
Po skonfigurowaniu NavHost można przejść do innego ekranu, wywołując funkcję navigate na obiekcie NavController i podając docelową trasę.
navController.navigate("details")Wywoływanie z przycisku
Nawigacja zwykle odbywa się w funkcji zwrotnej, na przykład w onClick przycisku.
Button(onClick = { navController.navigate("details") }) {
Text("Open details")
}Stos powrotu
Każde wywołanie navigate umieszcza nowe miejsce docelowe na stosie powrotu. Systemowy przycisk Wstecz automatycznie je zdejmuje, wracając do poprzedniego ekranu.
popBackStack
Aby programowo wrócić (na przykład z niestandardowego przycisku „W górę”), wywołaj popBackStack. Usuwa ono bieżące miejsce docelowe i wraca do poprzedniego.
navController.popBackStack()navigateUp
navigateUp() działa podobnie i jest właściwym wyborem dla strzałki W górę na pasku narzędzi. Uwzględnia hierarchię nawigacji.
navController.navigateUp()Unikanie zduplikowanych miejsc docelowych
Szybkie dwukrotne kliknięcie przycisku może dodać ten sam ekran dwa razy. Użyj launchSingleTop = true, aby uniknąć umieszczania na stosie zduplikowanych kopii miejsca docelowego.
navController.navigate("details") {
launchSingleTop = true
}popUpTo
popUpTo podczas nawigacji usuwa część stosu powrotu. Jest przydatne po zalogowaniu: przechodzi do ekranu głównego i usuwa ekran logowania, aby przycisk Wstecz do niego nie wracał.
navController.navigate("home") {
popUpTo("login") { inclusive = true }
}inclusive
inclusive = true oznacza, że cel funkcji popUpTo również zostanie usunięty. Przy inclusive = false usuwanie zatrzymuje się tuż przed nim.
Niezależne ekrany
Zamiast przekazywać cały obiekt NavController do każdego ekranu, przekazuj lambdy. Ekran wywołuje onOpenDetails() i nie musi znać szczegółów implementacji nawigacji.
@Composable
fun HomeScreen(onOpenDetails: () -> Unit) {
Button(onClick = onOpenDetails) { Text("Details") }
}Podłączanie lambdy
NavHost łączy lambdę z rzeczywistym wywołaniem navigate, dzięki czemu logika nawigacji znajduje się w jednym miejscu.
composable("home") {
HomeScreen(onOpenDetails = {
navController.navigate("details")
})
}Połączenie elementów
Ekran główny przechodzi do szczegółów, a ekran szczegółów wraca za pomocą strzałki W górę.
composable("home") {
HomeScreen(onOpenDetails = { navController.navigate("details") })
}
composable("details") {
DetailsScreen(onBack = { navController.popBackStack() })
}Szybkie sprawdzenie
Które wywołanie programowo przenosi użytkownika do poprzedniego ekranu?
Podsumowanie
Nawigacja:
navigate("route")umieszcza miejsce docelowe na stosie.popBackStack()/navigateUp()pozwalają wrócić.- Używaj
launchSingleToporazpopUpTo { inclusive }, aby kontrolować stos. - Przekazuj lambdy, a nie kontroler, aby ekrany można było ponownie wykorzystywać.
Ucz się Kotlin dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 36
- Lekcje
- 152
Często zadawane pytania
Czy lekcja „Nawigowanie między ekranami” jest bezpłatna?
Tak — pełny tekst „Nawigowanie między ekranami” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Android Academy, przejdź na CoddyKit PRO. Kurs Android Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Nawigowanie między ekranami”?
Przechodź do kolejnych miejsc docelowych i wracaj do poprzednich Ćwiczysz Android Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Android Academy?
Nie wymagamy żadnego doświadczenia. Android Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Nawigowanie między ekranami”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Android Academy?
Tak. Każda lekcja Android Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Konfigurowanie NavHost
- Nawigowanie między ekranami
- Przekazywanie argumentów
- Nawigacja dolna