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ętlifor. - Należy dodać
keydla stabilności oraz używaćitem { }dla nagłówków. - Przewija się automatycznie — nie wymaga modyfikatora przewijania.
LazyRowjest 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
- Column, Row i Box
- System Modifier
- Wyrównywanie i rozmieszczanie
- Listy z LazyColumn