Перейти к содержанию

LayoutStyle

Правила, по которым родитель измеряет и размещает виджет: размер, отступы, flex, grid, позиция и переполнение.

Обзор

Геометрия виджета настраивается через widget.layout(style -> ...). Вручную вычислять экранные координаты не нужно. Любой размер — это запрос: родительский контейнер, правила flex/grid и ограничения min/max вычисляют итоговые границы.

Понятие Значение
Родитель / Ребёнок Контейнер управляет компоновкой; дочерний виджет задаёт свои правила поведения.
Желаемый размер Запрашиваемые габариты (width, height, size). Могут быть скорректированы контейнером.
SizeValue.auto() Автоматический подбор размера по содержимому виджета или доступному месту (не равен 100%).
Главная ось Направление flex: ширина для ROW, высота для COLUMN.
Поперечная ось Ось, перпендикулярная главной (высота для ROW, ширина для COLUMN).
Свободное место Пространство, оставшееся после базовых размеров и отступов. Делится через flexGrow и flexShrink.

Модель компоновки UniGUI и веб-CSS

Хотя названия повторяют CSS, UniGUI использует собственную предсказуемую систему компоновки. В частности, PositionType.FIXED фиксирует виджет относительно ближайшего хоста компоновки (окна или диалога), а не физического экрана монитора.

Размер и позиция

Размеры задаются методами width, height, size или sizePercent. Значениями могут быть UI-пиксели, проценты родителя или auto. Границы minWidth / minHeight и maxWidth / maxHeight строго ограничивают диапазон.

Метод / Помощник Тип Описание
width(w) / height(h) Габариты Задаёт ширину или высоту (px, percent или auto).
size(w, h) Сокращение Задаёт одновременно ширину и высоту в UI-пикселях.
sizePercent(w, h) Проценты Запрашивает процентную долю от доступного размера родителя.
fixed(w, h) Фиксация Задаёт размер в пикселях и отключает flex-рост и сжатие (0 0 auto).
fill() 100% Родителя Просит 100% ширины и 100% высоты (sizePercent(100, 100)).
expand() Flex-остаток Забирает всё свободное место только по главной оси flex-родителя (1 1 0px).
position(ABSOLUTE) Вне потока Выводит виджет из потока; координаты через left, top, right, bottom или inset.

Разница между fill() и expand()

Используйте fill(), если элемент должен занять 100% родителя по обеим осям независимо от соседей. Используйте expand(), если дочерний flex-виджет (например, область содержимого) должен занять оставшееся место после фиксированных элементов (заголовка, панели кнопок).

Отступы и переполнение

Отступы управляют внешними зазорами, внутренними полями и поведением при выходе содержимого за границы.

Свойство отступа Расположение Назначение
margin(...) Снаружи Отделяет виджет от соседних элементов, не сдвигая собственное содержимое.
marginAutoHorizontal() / Vertical() Снаружи Поглощает свободное место оси, центрируя виджет или прижимая к краю.
padding(...) Внутри Отодвигает дочерние элементы внутрь от границ текущего виджета.
gap(row, col) Между детьми Задаёт расстояние между элементами flex-линий или ячейками сетки.
Режим переполнения Поведение
Overflow.VISIBLE Содержимое отображается за пределами границ виджета без обрезки (по умолчанию).
Overflow.HIDDEN Выходящее за границы содержимое аккуратно обрезается.
Overflow.AUTO Помечает ось как прокручиваемую. Саму прокрутку и бегунки реализует ScrollView.

Организация прокрутки

Установка overflowY(Overflow.AUTO) сообщает компоновщику о допустимости скролла, однако саму интерактивную прокрутку и скроллбары реализует контейнер ScrollView.

Flex

Flexbox последовательно размещает дочерние элементы вдоль одной главной оси (ROW или COLUMN).

Свойства контейнера

Свойство Ось / Область Значения Назначение
flexDirection Главная ось ROW, COLUMN, ROW_REVERSE, COLUMN_REVERSE Направление потока элементов.
flexWrap Перенос строк NOWRAP, WRAP, WRAP_REVERSE Размещение в одну строку/колонку либо перенос на новые.
justifyContent Главная ось START, CENTER, END, SPACE_BETWEEN, SPACE_AROUND, SPACE_EVENLY Распределение элементов вдоль главной оси.
alignItems Поперечная ось STRETCH, START, CENTER, END, BASELINE Выравнивание элементов перпендикулярно главной оси.
alignContent Многострочность START, CENTER, END, STRETCH, SPACE_BETWEEN Распределение линий переноса (работает только при WRAP).
gap(row, col) Зазоры UI-пиксели (например, gap(8.0f)) Расстояние между элементами и между линиями.

Поведение дочерних элементов

Готовый помощник То же, что Поведение
flexNone() 0 0 auto Жёсткий: сохраняет заданный размер; не растягивается и не сжимается.
expand() 1 1 0px Жадный: забирает всё свободное место по главной оси родителя.
flexAuto() 1 1 auto Адаптивный: берёт размер содержимого, растёт при наличии места, сжимается при тесноте.
flexInitial() 0 1 auto Сжимаемый: держит базовый размер, сжимается при тесноте, но сам не растёт.
flex(grow, shrink, basis) Ручной Веса для распределения свободного места и стартовый базовый размер.
alignSelf(Align) Переопределение Заменяет родительский alignItems для конкретного ребёнка.

Сетка и выравнивание

Сетка (CSS Grid) организует виджеты в двухмерную матрицу колонок и строк, задаваемых определениями GridTrack.

Типы треков (GridTrack)

Метод создания Тип Описание Пример
GridTrack.px(n) Фиксированный Точный размер трека в UI-пикселях. GridTrack.px(96.0f)
GridTrack.fr(n) Дробный (fr) Доля от оставшегося свободного места. GridTrack.fr(1.0f)
GridTrack.percent(n) Процентный Процент от габаритов контейнера сетки. GridTrack.percent(33.3f)
GridTrack.auto() Автоматический Размер подбирается по самому крупному элементу ячейки. GridTrack.auto()
GridTrack.minmax(min, max) Ограниченный Задаёт допустимый диапазон размера трека от min до max. GridTrack.minmax(px(50), fr(1))

Настройка сетки и размещение ячеек

Метод Область Описание
gridTemplateColumns(...) Контейнер Явный шаблон колонок сетки.
gridTemplateRows(...) Контейнер Явный шаблон строк сетки.
gridAutoColumns(...) / gridAutoRows(...) Контейнер Размеры треков, создаваемых автоматически при выходе за шаблон.
gridAutoFlow(GridAutoFlow) Контейнер Направление авторазмещения: ROW, COLUMN, ROW_DENSE, COLUMN_DENSE.
gridColumn(start, span) Элемент Номер стартовой колонки (нумерация с 1) и ширина span (<= 0 — авторазмещение).
gridRow(start, span) Элемент Номер стартовой строки (нумерация с 1) и высота span (<= 0 — авторазмещение).
alignSelf / centerSelf Элемент Выравнивает конкретный виджет внутри его ячейки.
zIndex(int) Элемент Порядок наложения слоёв (виджеты с большим zIndex рисуются поверх).

Пакеты и копии

Стиль виджета автоматически запускает пересчёт компоновки при изменении любого свойства. Чтобы избежать повторных пересчётов при множественных правках, объединяйте вызовы в блок update(...) — пересчёт сработает ровно один раз по завершении блока.

style.update(s -> s
        .width(240.0f)
        .padding(12.0f)
        .flexNone());
Метод жизненного цикла Сохраняет Callback Когда использовать
update(Consumer<LayoutStyle>) Да Пакетное применение нескольких свойств с одним пересчётом в конце. Поддерживает вложенность.
copy() Нет Создаёт отдельный снимок свойств в новом объекте без привязки к виджету.
copyFrom(LayoutStyle other) Да Копирует все значения из другого стиля, сохраняя callback текущего виджета.

Фиксированный заголовок и растягиваемое тело

VBox root = new VBox();
Label header = new Label("Files");
VBox content = new VBox();

header.layout(style -> style.height(24.0f).flexNone());
content.layout(style -> style.expand().padding(12.0f));
root.addChild(header);
root.addChild(content);

Фиксированная колонка и гибкая колонка

LayoutStyle grid = new LayoutStyle()
        .gridTemplateColumns(GridTrack.px(96.0f), GridTrack.fr(1.0f))
        .gridAutoRowsOf(GridTrack.auto())
        .gap(8.0f, 12.0f);

API

Размер и позиция

Метод Описание
position(PositionType) Выбирает режим участия в потоке (RELATIVE/STATIC) или внепотоковое позиционирование (ABSOLUTE/FIXED).
width(SizeValue) Задаёт желаемую ширину через auto, UI-пиксели или процент родителя.
width(float) Задаёт желаемую ширину в UI-пикселях.
height(SizeValue) Задаёт желаемую высоту через auto, UI-пиксели или процент родителя.
height(float) Задаёт желаемую высоту в UI-пикселях.
size(SizeValue, SizeValue) Задаёт одновременно ширину и высоту через объекты SizeValue.
size(float, float) Запрашивает ширину и высоту в UI-пикселях. Значение LayoutConstraints.AUTO превращается в auto.
sizePercent(float, float) Запрашивает ширину и высоту как процент от доступного размера родителя.
fixed(float, float) Задаёт точные размеры в пикселях и полностью отключает flex-рост и сжатие (0 0 auto).
fill() Запрашивает 100% ширины и 100% высоты родительского контейнера.
minWidth(SizeValue) Задаёт нижнюю границу ширины для предотвращения нежелательного схлопывания.
maxWidth(SizeValue) Задаёт верхнюю границу ширины виджета.
minHeight(SizeValue) Задаёт нижнюю границу высоты виджета.
maxHeight(SizeValue) Задаёт верхнюю границу высоты виджета.
inset(SizeValue, SizeValue, SizeValue, SizeValue) Задаёт расстояния до краёв родителя, обычно для ABSOLUTE-позиционирования.

LayoutStyle::position(PositionType)

Режим позиционирования

Выбирает режим участия в потоке (RELATIVE/STATIC) или внепотоковое позиционирование (ABSOLUTE/FIXED).

Параметр Тип Описание
position PositionType —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::width(SizeValue)

Ширина (SizeValue)

Задаёт желаемую ширину через auto, UI-пиксели или процент родителя.

Параметр Тип Описание
width SizeValue —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::width(float)

Ширина в пикселях

Задаёт желаемую ширину в UI-пикселях.

Параметр Тип Описание
pixels float —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::height(SizeValue)

Высота (SizeValue)

Задаёт желаемую высоту через auto, UI-пиксели или процент родителя.

Параметр Тип Описание
height SizeValue —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::height(float)

Высота в пикселях

Задаёт желаемую высоту в UI-пикселях.

Параметр Тип Описание
pixels float —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::size(SizeValue, SizeValue)

Размер (SizeValue)

Задаёт одновременно ширину и высоту через объекты SizeValue.

Параметр Тип Описание
width SizeValue —
height SizeValue —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::size(float, float)

Размер в пикселях

Запрашивает ширину и высоту в UI-пикселях. Значение LayoutConstraints.AUTO превращается в auto.

Это запрос размера, а не гарантированный итог. Flex, grid, min/max и родитель могут его изменить. Метод не отключает flex-рост и сжатие — для этого нужен fixed.

Параметр Тип Описание
width float Ширина в UI-пикселях или LayoutConstraints.AUTO для размера по содержимому.
height float Высота в UI-пикселях или LayoutConstraints.AUTO для размера по содержимому.

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::sizePercent(float, float)

Размер в процентах

Запрашивает ширину и высоту как процент от доступного размера родителя.

Параметр Тип Описание
widthPercent float —
heightPercent float —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::fixed(float, float)

Фиксированный размер

Задаёт точные размеры в пикселях и полностью отключает flex-рост и сжатие (0 0 auto).

Параметр Тип Описание
width float —
height float —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::fill()

Заполнить родителя

Запрашивает 100% ширины и 100% высоты родительского контейнера.

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::minWidth(SizeValue)

Минимальная ширина

Задаёт нижнюю границу ширины для предотвращения нежелательного схлопывания.

Параметр Тип Описание
minWidth SizeValue —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::maxWidth(SizeValue)

Максимальная ширина

Задаёт верхнюю границу ширины виджета.

Параметр Тип Описание
maxWidth SizeValue —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::minHeight(SizeValue)

Минимальная высота

Задаёт нижнюю границу высоты виджета.

Параметр Тип Описание
minHeight SizeValue —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::maxHeight(SizeValue)

Максимальная высота

Задаёт верхнюю границу высоты виджета.

Параметр Тип Описание
maxHeight SizeValue —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::inset(SizeValue, SizeValue, SizeValue, SizeValue)

Координаты границ

Задаёт расстояния до краёв родителя, обычно для ABSOLUTE-позиционирования.

Параметр Тип Описание
left SizeValue —
top SizeValue —
right SizeValue —
bottom SizeValue —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

Отступы и переполнение

Метод Описание
margin(EdgeInsets) Задаёт внешние отступы, отделяющие виджет от соседей.
margin(float) Задаёт одинаковый внешний отступ со всех четырёх сторон в UI-пикселях.
margin(float, float) Задаёт горизонтальный и вертикальный внешние отступы в UI-пикселях.
marginAutoHorizontal() Разрешает левому и правому отступам поглощать свободное место, центрируя виджет.
marginAutoVertical() Разрешает верхнему и нижнему отступам поглощать свободное место, центрируя виджет.
padding(EdgeInsets) Задаёт внутренние поля между границей виджета и его содержимым.
padding(float) Задаёт одинаковый внутренний отступ со всех четырёх сторон в UI-пикселях.
padding(float, float) Задаёт горизонтальный и вертикальный внутренние отступы в UI-пикселях.
overflowX(Overflow) Управляет содержимым, выходящим за левую и правую границы (VISIBLE, HIDDEN, AUTO).
overflowY(Overflow) Управляет содержимым за верхней и нижней границами; скролл реализует ScrollView.
overflow(Overflow) Задаёт режим переполнения одновременно для горизонтальной и вертикальной осей.

LayoutStyle::margin(EdgeInsets)

Внешние отступы (EdgeInsets)

Задаёт внешние отступы, отделяющие виджет от соседей.

Параметр Тип Описание
margin EdgeInsets —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::margin(float)

Единый внешний отступ

Задаёт одинаковый внешний отступ со всех четырёх сторон в UI-пикселях.

Параметр Тип Описание
all float —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::margin(float, float)

Внешние отступы по осям

Задаёт горизонтальный и вертикальный внешние отступы в UI-пикселях.

Параметр Тип Описание
horizontal float —
vertical float —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::marginAutoHorizontal()

Автоматический горизонтальный margin

Разрешает левому и правому отступам поглощать свободное место, центрируя виджет.

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::marginAutoVertical()

Автоматический вертикальный margin

Разрешает верхнему и нижнему отступам поглощать свободное место, центрируя виджет.

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::padding(EdgeInsets)

Внутренние отступы (EdgeInsets)

Задаёт внутренние поля между границей виджета и его содержимым.

Параметр Тип Описание
padding EdgeInsets —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::padding(float)

Одинаковый padding

Задаёт одинаковый внутренний отступ со всех четырёх сторон в UI-пикселях.

Параметр Тип Описание
all float Отступ слева, сверху, справа и снизу.

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::padding(float, float)

Внутренние отступы по осям

Задаёт горизонтальный и вертикальный внутренние отступы в UI-пикселях.

Параметр Тип Описание
horizontal float —
vertical float —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::overflowX(Overflow)

Горизонтальное переполнение

Управляет содержимым, выходящим за левую и правую границы (VISIBLE, HIDDEN, AUTO).

Параметр Тип Описание
overflowX Overflow —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::overflowY(Overflow)

Вертикальное переполнение

Управляет содержимым за верхней и нижней границами; скролл реализует ScrollView.

Параметр Тип Описание
overflowY Overflow —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::overflow(Overflow)

Единое переполнение

Задаёт режим переполнения одновременно для горизонтальной и вертикальной осей.

Параметр Тип Описание
overflow Overflow —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

Flex-компоновка

Метод Описание
flexDirection(FlexDirection) Задаёт главную ось flex-контейнера (ROW или COLUMN).
flexWrap(FlexWrap) Управляет переносом дочерних элементов: в одну линию (NOWRAP) или с переносом (WRAP).
flexFlow(FlexDirection, FlexWrap) Задаёт одновременно направление главной оси и режим переноса строк.
gap(float) Задаёт одинаковое расстояние между строками и между колонками в UI-пикселях.
gap(float, float) Задаёт раздельные расстояния между строками и между колонками в UI-пикселях.
flex(float, float, SizeValue) Задаёт вес роста, вес сжатия и базовый размер до распределения свободного места.
flexNone() Запрещает растяжение и сжатие, строго сохраняя желаемый размер (0 0 auto).
expand() Забирает всё доступное свободное место вдоль главной оси flex-родителя (1 1 0px).
flexAuto() Размер по содержимому: растёт при наличии места и сжимается при тесноте (1 1 auto).
flexInitial() Размер по базовым габаритам: может сжиматься при тесноте, но сам не растёт (0 1 auto).
justifyContent(Justify) Распределяет детей вдоль главной оси (START, CENTER, END, SPACE_BETWEEN).
alignItems(Align) Выравнивает детей вдоль поперечной оси контейнера (STRETCH, START, CENTER, END).
alignSelf(Align) Переопределяет правило alignItems родителя для конкретного дочернего виджета.
alignContent(AlignContent) Распределяет перенесённые линии вдоль поперечной оси (работает только при WRAP).

LayoutStyle::flexDirection(FlexDirection)

Направление flex

Задаёт главную ось flex-контейнера (ROW или COLUMN).

Параметр Тип Описание
flexDirection FlexDirection —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::flexWrap(FlexWrap)

Перенос flex-линий

Управляет переносом дочерних элементов: в одну линию (NOWRAP) или с переносом (WRAP).

Параметр Тип Описание
flexWrap FlexWrap —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::flexFlow(FlexDirection, FlexWrap)

Flex flow

Задаёт одновременно направление главной оси и режим переноса строк.

Параметр Тип Описание
direction FlexDirection —
wrap FlexWrap —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::gap(float)

Единый зазор

Задаёт одинаковое расстояние между строками и между колонками в UI-пикселях.

Параметр Тип Описание
gap float —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::gap(float, float)

Зазоры по осям

Задаёт раздельные расстояния между строками и между колонками в UI-пикселях.

Параметр Тип Описание
rowGap float —
columnGap float —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::flex(float, float, SizeValue)

Flex shorthand

Задаёт вес роста, вес сжатия и базовый размер до распределения свободного места.

Grow и shrink — веса, а не проценты. basis — стартовый размер на главной оси; auto берёт запрос ширины или высоты. Родитель всё равно может изменить итог.

Параметр Тип Описание
grow float Доля свободного места на главной оси. 0 не растягивает.
shrink float Доля нехватки места, когда дети не помещаются. 0 не сжимает.
basis SizeValue Базовый размер на главной оси (auto, пиксели или проценты). Null становится auto.

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::flexNone()

Flex none

Запрещает растяжение и сжатие, строго сохраняя желаемый размер (0 0 auto).

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::expand()

Растянуть по главной оси

Забирает всё доступное свободное место вдоль главной оси flex-родителя (1 1 0px).

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::flexAuto()

Flex auto

Размер по содержимому: растёт при наличии места и сжимается при тесноте (1 1 auto).

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::flexInitial()

Flex initial

Размер по базовым габаритам: может сжиматься при тесноте, но сам не растёт (0 1 auto).

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::justifyContent(Justify)

Распределение по главной оси

Распределяет детей вдоль главной оси (START, CENTER, END, SPACE_BETWEEN).

Параметр Тип Описание
justifyContent Justify —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::alignItems(Align)

Выравнивание по поперечной оси

Выравнивает детей вдоль поперечной оси контейнера (STRETCH, START, CENTER, END).

Параметр Тип Описание
alignItems Align —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::alignSelf(Align)

Индивидуальное выравнивание

Переопределяет правило alignItems родителя для конкретного дочернего виджета.

Параметр Тип Описание
alignSelf Align —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::alignContent(AlignContent)

Распределение линий

Распределяет перенесённые линии вдоль поперечной оси (работает только при WRAP).

Параметр Тип Описание
alignContent AlignContent —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

Сетка и выравнивание

Метод Описание
gridTemplateColumns(List) Задаёт явный шаблон колонок. Пустой список или null оставляет автоматические колонки.
gridTemplateColumns(GridTrack[]) Задаёт явный шаблон колонок сетки через varargs треков.
gridTemplateRows(List) Задаёт явный шаблон строк сетки.
gridTemplateRows(GridTrack[]) Задаёт явный шаблон строк сетки через varargs треков.
gridAutoColumns(List) Задаёт размеры колонок, создаваемых автоматически при выходе за шаблон.
gridAutoRows(List) Задаёт размеры строк, создаваемых автоматически при выходе за шаблон.
gridAutoFlow(GridAutoFlow) Управляет направлением обхода ячеек при авторазмещении (ROW, COLUMN, ROW_DENSE, COLUMN_DENSE).
gridColumn(int, int) Ставит ребёнка в колонку (нумерация с 1) и задаёт ширину span (<= 0 — авторазмещение).
gridRow(int, int) Ставит ребёнка в строку (нумерация с 1) и задаёт высоту span (<= 0 — авторазмещение).
aspectRatio(float) Задаёт пропорцию ширины к высоте (width / height), если одна из осей auto.
zIndex(int) Задаёт порядок отрисовки среди соседей (виджеты с большим zIndex рисуются поверх).
center() Центрирует детей контейнера по главной и поперечной осям.
centerSelf() Центрирует этот элемент на поперечной оси родителя (alignSelf(CENTER)).

LayoutStyle::gridTemplateColumns(List)

Колонки сетки

Задаёт явный шаблон колонок. Пустой список или null оставляет автоматические колонки.

Каждый GridTrack — одна колонка: px, percent, fr, auto или minmax. Треки сверх шаблона берутся из gridAutoColumns.

Параметр Тип Описание
tracks List Треки колонок по порядку. Null или пустой список очищает шаблон.

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::gridTemplateColumns(GridTrack[])

Колонки сетки (varargs)

Задаёт явный шаблон колонок сетки через varargs треков.

Параметр Тип Описание
tracks GridTrack[] —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::gridTemplateRows(List)

Строки сетки

Задаёт явный шаблон строк сетки.

Параметр Тип Описание
tracks List —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::gridTemplateRows(GridTrack[])

Строки сетки (varargs)

Задаёт явный шаблон строк сетки через varargs треков.

Параметр Тип Описание
tracks GridTrack[] —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::gridAutoColumns(List)

Авто-колонки

Задаёт размеры колонок, создаваемых автоматически при выходе за шаблон.

Параметр Тип Описание
tracks List —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::gridAutoRows(List)

Авто-строки

Задаёт размеры строк, создаваемых автоматически при выходе за шаблон.

Параметр Тип Описание
tracks List —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::gridAutoFlow(GridAutoFlow)

Направление авторазмещения

Управляет направлением обхода ячеек при авторазмещении (ROW, COLUMN, ROW_DENSE, COLUMN_DENSE).

Параметр Тип Описание
flow GridAutoFlow —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::gridColumn(int, int)

Размещение в колонках

Ставит ребёнка в колонку (нумерация с 1) и задаёт ширину span (<= 0 — авторазмещение).

Параметр Тип Описание
start int —
span int —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::gridRow(int, int)

Размещение в строках

Ставит ребёнка в строку (нумерация с 1) и задаёт высоту span (<= 0 — авторазмещение).

Параметр Тип Описание
start int —
span int —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::aspectRatio(float)

Соотношение сторон

Задаёт пропорцию ширины к высоте (width / height), если одна из осей auto.

Параметр Тип Описание
ratio float —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::zIndex(int)

Z-Index

Задаёт порядок отрисовки среди соседей (виджеты с большим zIndex рисуются поверх).

Параметр Тип Описание
zIndex int —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::center()

Центрировать детей

Центрирует детей контейнера по главной и поперечной осям.

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::centerSelf()

Центрировать себя

Центрирует этот элемент на поперечной оси родителя (alignSelf(CENTER)).

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

Пакеты и жизненный цикл

Метод Описание
update(Consumer) Применяет несколько изменений layout и уведомляет владельца один раз после внешнего блока.
copy() Создаёт независимый снимок всех настроек без callback-уведомления родителя.
copyFrom(LayoutStyle) Копирует все значения из другого стиля, сохраняя callback текущего владельца.
onChanged(Runnable) Регистрирует callback, вызываемый при любом реальном изменении свойств стиля.

LayoutStyle::update(Consumer)

Пакетное обновление

Применяет несколько изменений layout и уведомляет владельца один раз после внешнего блока.

Вложенные вызовы update безопасны. Callback срабатывает только после самого внешнего блока и только если свойство реально изменилось. null игнорируется.

Параметр Тип Описание
update Consumer Callback, который меняет этот стиль; null ничего не делает.

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::copy()

Создать копию

Создаёт независимый снимок всех настроек без callback-уведомления родителя.

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::copyFrom(LayoutStyle)

Скопировать из другого стиля

Копирует все значения из другого стиля, сохраняя callback текущего владельца.

Параметр Тип Описание
other LayoutStyle —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.

LayoutStyle::onChanged(Runnable)

Слушатель изменений

Регистрирует callback, вызываемый при любом реальном изменении свойств стиля.

Параметр Тип Описание
onChanged Runnable —

Возвращает LayoutStyle: этот LayoutStyle для fluent-настройки.