Jetpack Compose Academy · Lekcja

Miejsca docelowe i trasy Composable

Zarejestruj każdy ekran jako trasę

Lekcja 2 z 413 kroki

Miejsca docelowe i trasy Composable to bezpłatna lekcja Jetpack Compose 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 Jetpack Compose Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.

Ekrany jako miejsca docelowe

Każdy ekran w grafie jest miejscem docelowym. Rejestrujesz go za pomocą konstruktora composable wewnątrz NavHost, nadając mu trasę.

composable("home") { HomeScreen() }

Czym naprawdę jest trasa

Trasa to unikalny klucz tekstowy miejsca docelowego. Compose porównuje napis, do którego nawigujesz, z zadeklarowanymi trasami.

Przechowywanie tras w stałych

Literówki w surowych napisach powodują ciche błędy. Przechowuj każdą trasę jako stałą, aby kompilator wykrywał pomyłki za Ciebie.

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

Klasa sealed ekranów

W większych aplikacjach sealed class grupuje wszystkie trasy w jednym miejscu. Dzięki temu dodawanie ekranów jest bezpieczne i łatwe do znalezienia.

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

Rejestrowanie każdego miejsca docelowego

Wymień każdy ekran w osobnym bloku composable. Ciało lambdy to interfejs wyświetlany, gdy dana trasa stanie się aktywna.

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

Nawigowanie do trasy

Użyj tego samego napisu trasy, aby przejść do danego miejsca. NavController znajdzie pasujące miejsce docelowe, a NavHost je wyrenderuje.

navController.navigate(Screen.Settings.route)

Trasy muszą być unikalne

Dwa miejsca docelowe nie mogą współdzielić jednej trasy. Każda trasa jest adresem, a zduplikowane adresy sprawiają, że nawigacja staje się niejednoznaczna i zawodna.

Przekazywanie kontrolera dalej

Ekrany często uruchamiają nawigację, dlatego przekaż każdemu miejscu docelowemu sposób nawigowania. Często zamiast całego kontrolera przekazuje się lambdy.

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

Utrzymywanie niezależności ekranów

Przekazywanie lambd zamiast NavController sprawia, że ekrany można testować i ponownie wykorzystywać. Ekran informuje, co się wydarzyło, a nie jak nawigować.

Trasy przypominają adresy URL

Traktuj trasy jak małe adresy URL. To podejście przydaje się później, gdy dodasz argumenty i precyzyjne linki otwierające trasy spoza aplikacji.

Grupowanie powiązanych przepływów

W miarę rozrastania się grafów możesz dzielić ekrany na zagnieżdżone grafy z własnymi trasami. Dzięki temu miejsca docelowe danej funkcji pozostają uporządkowane i niezależne.

Szybkie sprawdzenie

Dlaczego warto używać stałych lub klasy sealed dla tras?

Podsumowanie

Dowiedziałeś się, że każdy ekran jest miejscem docelowym z unikalną trasą, a stałe lub klasa sealed pomagają zachować bezpieczeństwo i porządek tych tras. 🗂️

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

Często zadawane pytania

Czy lekcja „Miejsca docelowe i trasy Composable” jest bezpłatna?

Tak — pełny tekst „Miejsca docelowe i trasy Composable” 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 Jetpack Compose Academy, przejdź na CoddyKit PRO. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Miejsca docelowe i trasy Composable”?

Zarejestruj każdy ekran jako trasę Ćwiczysz Jetpack Compose 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ąć Jetpack Compose Academy?

Nie wymagamy żadnego doświadczenia. Jetpack Compose 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 „Miejsca docelowe i trasy Composable”?

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

Tak. Każda lekcja Jetpack Compose 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. NavController i NavHost
  2. Miejsca docelowe i trasy Composable
  3. Przekazywanie argumentów między ekranami
  4. Stos wsteczny i deep linki
← Powrót do Jetpack Compose Academy