Соотношение компонентов Vaadin GrdiLayout
2 ответа
Вы не можете указать, что компонент будет принимать два столбца при добавлении, но вы можете использовать перегруженный addComponent
метод, который принимает четыре индекса, определяющих прямоугольник:
//add textArea to first and second columns in the fourth row
//indexes are zero-based
layout.addComponent(textArea, 0, 3, 1, 3);
Этот подход требует, чтобы вы точно знали, где (в какой строке) будет расположен компонент (что может оказаться немного сложным в некоторых сценариях), поскольку добавить его " в следующей свободной строке " невозможно. Для более общего подхода вы можете вместо этого использовать некоторые надстройки, такие как Flex Layout или Responsive Layout, или написать некоторую логику GridLayout
,
В одном из моих проектов я использовал этот метод для добавления компонента, который охватывает два столбца в сетке с двумя столбцами.
public void addRowToGrid(Component component)
{
int rows = gLayout.getRows();
gLayout.insertRow(rows);
gLayout.addComponent(component, 0, rows, 1, rows);
}
Когда я создаю сетку, я просто использую:
private GridLayout gLayout = new GridLayout(2,1);
Затем каждый раз, когда вы добавляете больше компонентов, он будет добавлять строки по мере необходимости.