0Pricing
Android Academy · Lekcja

Listy z LazyColumn

Wydajnie wyświetlaj przewijane listy

Listy z LazyColumn to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 4 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.

Dlaczego nie użyć po prostu Column?

Column tworzy wszystkie elementy podrzędne jednocześnie. W przypadku długiej lub przewijanej listy marnuje to pamięć i spowalnia interfejs. Potrzebny jest układ listy, który tworzy tylko widoczne elementy.

Nadchodzi LazyColumn

LazyColumn to przewijana lista pionowa, która tworzy tylko elementy znajdujące się aktualnie na ekranie — podobnie jak dawny RecyclerView, ale znacznie prościej.

LazyColumn {
    items(messages) { msg ->
        Text(text = msg)
    }
}

Funkcja items()

W lambdzie LazyColumn należy wywołać items(list) i przekazać composable dla każdego elementu. Compose wywołuje go leniwie podczas przewijania przez użytkownika.

LazyColumn {
    items(users) { user ->
        Text(text = user.name)
    }
}

To nie jest zwykła pętla

Nie należy używać zwykłej pętli for wewnątrz LazyColumn — niweluje to działanie leniwe. Zawsze należy używać items() (lub itemsIndexed()), aby Compose mógł tworzyć elementy na żądanie.

Pojedynczy element nagłówka

Użyj item { } (w liczbie pojedynczej), aby dodać jeden stały element, na przykład nagłówek, przed elementami tworzonymi w pętli.

LazyColumn {
    item { Text("Header") }
    items(data) { Text(it) }
}

itemsIndexed

Gdy potrzebna jest pozycja elementu, użyj itemsIndexed, aby otrzymać zarówno indeks, jak i element.

LazyColumn {
    itemsIndexed(data) { index, value ->
        Text(text = "$index: $value")
    }
}

Klucze zapewniające stabilność

Należy podać stabilny key dla każdego elementu, aby Compose mógł prawidłowo śledzić elementy podczas zmian listy — poprawia to wydajność i animacje.

items(users, key = { it.id }) { user ->
    Text(user.name)
}

Odstępy między elementami

LazyColumn przyjmuje verticalArrangement i contentPadding, które służą do ustawiania odstępów między elementami i marginesów wewnętrznych przy krawędziach listy.

LazyColumn(
    verticalArrangement = Arrangement.spacedBy(8.dp),
    contentPadding = PaddingValues(16.dp)
) {
    items(data) { Text(it) }
}

LazyRow

Dostępny jest również LazyRow do tworzenia poziomo przewijanych list — to samo API, ale inny kierunek. Doskonale nadaje się do karuzel kart.

LazyRow {
    items(images) { img ->
        Image(painter = img, contentDescription = null)
    }
}

Wbudowane przewijanie

Nie należy dodawać modyfikatora przewijania do LazyColumn — przewija się ona automatycznie. Dodanie verticalScroll spowodowałoby konflikt i awarię. Listy Lazy samodzielnie obsługują przewijanie.

Składanie wszystkiego w całość

Lista elementów z nagłówkiem, kluczami i odstępami.

@Composable
fun MessageList(messages: List<Message>) {
    LazyColumn(
        verticalArrangement = Arrangement.spacedBy(8.dp)
    ) {
        item { Text("Inbox") }
        items(messages, key = { it.id }) { msg ->
            Text(text = msg.text)
        }
    }
}

Szybkie sprawdzenie

Jaka jest główna przewaga LazyColumn nad przewijaną kolumną Column?

Podsumowanie

LazyColumn:

  • Tworzy tylko widoczne elementy — jest wydajna w przypadku długich list.
  • Należy używać items() / itemsIndexed(), a nie pętli for.
  • Należy dodać key dla stabilności oraz używać item { } dla nagłówków.
  • Przewija się automatycznie — nie wymaga modyfikatora przewijania. LazyRow jest wersją poziomą.

Często zadawane pytania

Czy lekcja „Listy z LazyColumn” jest bezpłatna?

Tak — pełny tekst „Listy z LazyColumn” 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 „Listy z LazyColumn”?

Wydajnie wyświetlaj przewijane listy Ć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 4 z 4.

Ile czasu zajmuje lekcja „Listy z LazyColumn”?

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. Column, Row i Box
  2. System Modifier
  3. Wyrównywanie i rozmieszczanie
  4. Listy z LazyColumn
← Powrót do Android Academy