Изменение размера композита с помощью FormLayout, когда его дочерний элемент становится шире, чем отображаемая область
Я использую SWT. У меня есть родительский Composite(уровень 1), который использует FormLayout, и он содержит среди прочего еще один Composite(уровень 2) также FormLayout. Этот составной элемент имеет несколько дочерних элементов (уровень 3), которые становятся видимыми и невидимыми в зависимости от пользовательского ввода.
Проблемный сценарий:
- композиты уровня 3 не видны
- изменен размер составного уровня 1 -> это также изменяет составной уровень уровня 2
- изменения пользовательского ввода -> композиты уровня 3 теперь видны
- проблема -> составной уровень 2 не изменяется, а составные элементы уровня 3 видны не все
Я должен изменить размер составного уровня 1, чтобы корректно изменить размер составного слоя 2, что не очень удобно для пользователя. Я перепробовал много вещей, но безуспешно, и поскольку все это является частью более крупного приложения, я не могу заменить FormLayout чем-то другим.
У кого-нибудь есть мнение по этому поводу? Есть ли какой-нибудь механизм, как заставить композиты FormLayout динамически изменять размер?
Спасибо Ян
1 ответ
Как и любая смелая проблема, у этой проблемы было простое решение. Чтобы сделать композиты уровня 3 видимыми, необходимо было getParent().layout()
чтобы компоновка уровня 2 правильно изменила размеры