Android Academy · Lekcja

Nawigowanie między ekranami

Przechodź do kolejnych miejsc docelowych i wracaj do poprzednich

Lekcja 2 z 413 kroki

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 launchSingleTop oraz popUpTo { inclusive }, aby kontrolować stos.
  • Przekazuj lambdy, a nie kontroler, aby ekrany można było ponownie wykorzystywać.
Bezpłatny start

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

  1. Konfigurowanie NavHost
  2. Nawigowanie między ekranami
  3. Przekazywanie argumentów
  4. Nawigacja dolna
← Powrót do Android Academy