Я хотел бы иметь ScrolledComposite
, у которого есть родительский элемент с GridLayout
, но полоса прокрутки не отображается, если я не использую FillLayout
. Моя проблема с FillLayout
заключается в том, что ее дети принимают равные части доступного пространства.ScrolledComposite parent с GridLayout
В моем случае есть два виджета, один сверху должен занимать не более 1/4 окна, а ScrolledComposite
должен занимать оставшееся пространство. Тем не менее, они оба берут половину.
Есть ли способ использовать GridLayout
с ScrolledComposite
или можно изменить поведение FillLayout
?
Вот мой код:
private void initContent() {
//GridLayout shellLayout = new GridLayout();
//shellLayout.numColumns = 1;
//shellLayout.verticalSpacing = 10;
//shell.setLayout(shellLayout);
shell.setLayout(new FillLayout(SWT.VERTICAL));
searchComposite = new SearchComposite(shell, SWT.NONE);
searchComposite.getSearchButton().addListener(SWT.Selection, this);
ScrolledComposite scroll = new ScrolledComposite(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
scroll.setLayout(new GridLayout(1, true));
Composite scrollContent = new Composite(scroll, SWT.NONE);
scrollContent.setLayout(new GridLayout(1, true));
for (ChangeDescription description : getChanges(false)) {
ChangesComposite cc = new ChangesComposite(scrollContent, description);
}
scroll.setMinSize(scrollContent.computeSize(SWT.DEFAULT, SWT.DEFAULT));
scroll.setContent(scrollContent);
scroll.setExpandVertical(true);
scroll.setExpandHorizontal(true);
scroll.setAlwaysShowScrollBars(true);
}
У меня такая же проблема, вы когда-нибудь находили решение? –