MIGLayout-Auto переходит на следующую строку, когда доступный столбец меньше, чем columnSpan компонента

Мои ограничения макета новые MigLayout("wrap 4")

Пытаюсь динамически размещать компоненты.

Вариант использования

Даже если ограничения для компонента (Comp4) указаны как диапазон 3 1, компонент должен быть автоматически добавлен в следующую строку, даже если остался 1 столбец, поскольку диапазон столбца (3) больше, чем доступный столбец (1) в 1-й ряд

Существуют ли какие-либо ограничения, которые можно указать для обработки таких вариантов использования?


person kushi    schedule 24.02.2015    source источник


Ответы (1)


С MigLayout("wrap 4") вы используете wrap в качестве ограничения контейнера. В этом контексте это удобное ограничение автоматического переноса. Если у вас есть макет с четырьмя ячейками в строке, вы можете его использовать. Если нет, то вам следует использовать ограничение компонента wrap. Контейнер wrap не предназначен для динамической адаптации.

person Jan Bodnar    schedule 25.02.2015
comment
Согласованный. Но в случае ограничения переноса для компонента компонент будет помещен в доступную ячейку (путем сжатия компонента), а затем будет выполнен перенос. Существует ли какое-либо ограничение/API на уровне компонента, который размещает компонент только в том случае, если измерение доступной ячейки (columnSpan и rowSpan) может вместить запрошенный компонент columnSpan и rowSpan, иначе доступные ячейки пропускаются, а компонент размещается в следующей доступной области (где ячейки могут быть объединены), что соответствует параметрам columnSpan и rowSpan компонента. - person kushi; 26.02.2015
comment
Я так не думаю. Вы можете использовать вызовы API, такие как getComponentConstraints(component), чтобы получить ограничение и программно сделать то, что вы хотите. Но нет такого ограничения, которое делало бы это автоматически за вас. - person Jan Bodnar; 26.02.2015