Aby skonfigurować zachowanie kontenera FlexBox, utwórz blok FlexBoxConfig i podaj go za pomocą parametru config.
FlexBox( config = { direction(FlexDirection.Column) wrap(FlexWrap.Wrap) alignItems(FlexAlignItems.Center) alignContent(FlexAlignContent.SpaceAround) justifyContent(FlexJustifyContent.Center) gap(16.dp) } ) { // child items }
Użyj FlexBoxConfig, aby określić kierunek układu, zachowanie zawijania, wyrównanie i odstępy między elementami.
Kierunek układu
Funkcja direction ustawia oś główną, która określa kierunek układu elementów. Może mieć następujące wartości:
Row(domyślna): ustawia oś główną jako poziomą. W językach pisanych od lewej do prawej będzie to od lewej do prawej, a w językach pisanych od prawej do lewej – odwrotnie.RowReverse: odwraca kierunekRow.Column: ustawia oś główną jako pionową, od góry do dołu.ColumnReverse: odwraca kierunekColumn.
Wyrównywanie elementów i rozmieszczanie dodatkowego miejsca
W poniższych sekcjach opisano, jak wyrównywać elementy i rozmieszczać dodatkowe miejsce wzdłuż osi głównej i poprzecznej.
Wzdłuż głównej osi
Użyj justifyContent, aby rozmieścić elementy wzdłuż głównej osi. W tabeli poniżej pokazano, jak zachowuje się system, gdy kierunek to Row.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Wzdłuż osi poprzecznej
Użyj właściwości alignItems, aby wyrównać elementy wzdłuż osi poprzecznej w jednym wierszu. To zachowanie można zastąpić w przypadku poszczególnych elementów za pomocą modyfikatora alignSelf.
Te obrazy pokazują, co się dzieje, gdy kierunek to Row:
|
|
|
|
|
|
|
|
|
|
|
Użyj alignContent, aby wyrównać linie do osi poprzecznej i rozłożyć dodatkowe miejsce między liniami. Ta właściwość ma zastosowanie tylko wtedy, gdy jest wiele wierszy (zawijanie jest włączone). Te obrazy pokazują, jak zachowuje się interfejs, gdy kierunek to Row:
|
|
|
|
|
|
|
|
|
|
|
|
|
Zapakuj elementy
Zawijanie umożliwia kontenerowi FlexBox wyświetlanie wielu wierszy i przenoszenie elementów, które nie mieszczą się w nowym wierszu lub kolumnie, wzdłuż osi poprzecznej. Skonfiguruj zachowanie zawijania za pomocą wrap.
Wartość |
Przykład użycia kierunku |
|
|
|
|
|
|
Poniższy przykład pokazuje, jak działa algorytm zawijania FlexBox. Kontener FlexBox ma główny rozmiar 100dp, właściwość wrap ustawioną na FlexWrap.Wrap i odstęp 8dp. Zawiera 3 elementy z odpowiednio basis 20dp, 40dp i 50dp.
W wierszu jest dostępne miejsce na 100dp znak. Dziecko 1 to 20dp.
Jest miejsce, więc dziecko 1 zostaje umieszczone w kolejce.
FlexBox.W wierszu jest dostępne miejsce na 80dp znak. Różnica wynosi 8dp. Dziecko 2 ma 40dp lat. Wymagana ilość miejsca to 48dp. Jest miejsce, więc odstęp i element podrzędny 2
są umieszczane w wierszu.
FlexBox po pierwszym elemencie.W wierszu jest 32dp wolnego miejsca. Różnica wynosi 8dp. Dziecko 3 ma 50dp lat. Wymagana ilość miejsca to 58dp. W bieżącym wierszu nie ma wystarczająco dużo miejsca, więc element podrzędny 3 jest umieszczany w nowym wierszu.
Dodawanie odstępów między elementami
Dodaj odstępy między wierszami i kolumnami za pomocą właściwości rowGap i columnGap. Jest to przydatne, aby uniknąć dodawania modyfikatorów odstępów do elementów podrzędnych.
|
|
|
dodaje odstęp w pionie między elementami i wierszami. |
dodaje poziome odstępy między elementami i wierszami. |
|