GridLayout
- контейнер, располагающий компоненты по сетке.
XML-имя компонента: grid
.
Пример использования контейнера:
link:../../../../../../source/gui_vcl/gridlayout_1.xml[role=include]
Элементы grid
:
-
columns
- обязательный элемент, описывает колонки сетки. Должен либо иметь атрибутcount
, либо вложенные элементыcolumn
для каждой колонки.В простейшем случае достаточно задать число колонок в атрибуте
count
. Тогда, если ширина всего контейнера явно задана в пикселах или процентах, незанятое место будет распределяться между колонками равными долями.Для распределения незанятого места неравными долями необходимо определить для каждой колонки элемент
column
и задать для него атрибутflex
.Пример сетки, в которой вторая и четвертая колонки занимают все лишнее место по горизонтали, причем четвертая колонка забирает себе в три раза больше лишнего места:
link:../../../../../../source/gui_vcl/gridlayout_2.xml[role=include]
Если атрибут
flex
не указан, или указано значение 0, то ширина данной колонки будет установлена по содержимому, если хотя бы одна другая колонка имеет ненулевойflex
. В приведенном примере первая и третья колонки получат ширину по максимальной длине текста надписей.TipДля того, чтобы лишнее место вообще образовалось, необходимо установить всему контейнеру ширину в пикселах или процентах. В противном случае ширина колонок будет рассчитана по ширине содержимого, и атрибут
flex
не будет иметь никакого эффекта.
-
rows
− обязательный элемент, содержит последовательность строк. Каждая строка определяется в своем элементеrow
.Элемент
row
может содержать атрибутflex
, аналогичный описанному дляcolumn
, но влияющий на распределение лишнего места по вертикали при заданной общей высоте сетки.Элемент
row
должен содержать элементы компонентов, отображаемых в ячейках данной строки сетки. Число компонентов в одной строке не должно превышать заданного количества колонок, но может быть меньше.
Любой компонент, находящийся в контейнере grid
, может иметь атрибуты colspan и rowspan. Эти атрибуты задают соответственно сколько колонок и строк будет занимать данный компонент. Например, так можно растянуть поле Field3
на три колонки:
link:../../../../../../source/gui_vcl/gridlayout_3.xml[role=include]
В результате компоненты будут располагаться следующим образом:
События щелчка по области компонента GridLayout
можно отслеживать с помощью интерфейса LayoutClickListener
.
Метод getComponent() позволяет получить дочерний компонент GridLayout
по индексам его колонки и строки:
link:../../../../../../source/gui_vcl/gridlayout_1.java[role=include]
В компоненте GridLayout
можно использовать горячие клавиши. Задать сочетание клавиш и вызываемое действие можно с помощью метода addShortcutAction()
:
link:../../../../../../source/gui_vcl/gridlayout.java[role=include]
- Атрибуты grid
-
align - enable - height - id - margin - spacing - stylename - visible - width
- Элементы grid
- Атрибуты columns
- Атрибуты column
- Атрибуты row
- API
-
add - addShortcutAction - addLayoutClickListener - getComponent - getComponentNN - getComponents - getMargin - getOwnComponent - getOwnComponents - remove - removeAll - setMargin - setSpacing