Za pomocą dynamicznych siatek możesz zarządzać dużymi zbiorami danych i zawartością dynamiczną, co poprawia wydajność aplikacji. Dzięki elementom kompozytowym siatki o opóźnionym renderowaniu możesz wyświetlać elementy w przewijanym kontenerze rozmieszczonym na wielu kolumnach lub wierszach.
Zgodność wersji
Ta implementacja wymaga, aby minimalna wersja pakietu SDK projektu była ustawiona na poziom API 21 lub wyższy.
Zależności
Wybór orientacji siatki
Komponenty LazyHorizontalGrid
i LazyVerticalGrid
umożliwiają wyświetlanie elementów w siatce. Przykładowo, pionowa siatka z opóźnionym wczytywaniem elementów wyświetla je w kontenerze, który można przewijać w kierunku pionowym, obejmując wiele kolumn. Natomiast siatka pozioma z opóźnionym wczytywaniem elementów zachowuje się tak samo na osi poziomej.
Tworzenie przewijalnego siatki
Poniższy kod tworzy poziomą siatkę z 3 kolumnami:
@Composable fun ScrollingGrid() { val itemsList = (0..15).toList() val itemModifier = Modifier .border(1.dp, Color.Blue) .width(80.dp) .wrapContentSize() LazyHorizontalGrid( rows = GridCells.Fixed(3), horizontalArrangement = Arrangement.spacedBy(16.dp), verticalArrangement = Arrangement.spacedBy(16.dp) ) { items(itemsList) { Text("Item is $it", itemModifier) } item { Text("Single item", itemModifier) } } }
Najważniejsze informacje o kodzie
- Komponent
LazyHorizontalGrid
określa orientację poziomą siatki.- Aby utworzyć siatkę pionową, użyj zamiast tego funkcji
LazyVerticalGrid
.
- Aby utworzyć siatkę pionową, użyj zamiast tego funkcji
- Właściwość
rows
określa sposób rozmieszczania treści w sieci.- W przypadku siatki pionowej użyj właściwości
columns
, aby określić układ.
- W przypadku siatki pionowej użyj właściwości
items(itemsList)
dodajeitemsList
doLazyHorizontalGrid
. Funkcja lambda renderuje elementText
dla każdego elementu i ustawia tekst w opisie elementu.item()
dodaje pojedynczy element doLazyHorizontalGrid
, a funkcja lambda renderuje pojedynczą kompozycjęText
w podobny sposób do funkcjiitems()
.GridCells.Fixed
określa liczbę wierszy lub kolumn.Aby utworzyć siatkę z jak największą liczbą wierszy, ustaw liczbę wierszy za pomocą parametru
GridCells.Adaptive
.W tym kodzie wartość
20.dp
określa, że każda kolumna ma co najmniej 20 dp, a wszystkie kolumny mają równą szerokość. Jeśli ekran ma szerokość 88 dp, są 4 kolumny po 22 dp każda.
Wyniki
LazyHorizontalGrid
Kolekcje zawierające ten przewodnik
Ten przewodnik należy do tych kolekcji krótkich przewodników, które obejmują szersze zagadnienia związane z tworzeniem aplikacji na Androida: