Я разрабатываю плагин для Eclipse и пытаюсь использовать ScrolledComposite
, а также заставить его занимать оставшееся пространство.
Родительский макет представляет собой сетку из 2 столбцов:
@Override
public void createPartControl(Composite parent) {
parent.setLayout(new GridLayout(2, false));
// other views etc
}
ScrolledComposite создается следующим образом (слегка сокращенно):
private void fillScroll() {
if (scroll != null) {
scroll.dispose();
}
scroll = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
GridData gd = new GridData();
gd.horizontalSpan = 2;
scroll.setLayoutData(gd);
Composite innerContainer = new Composite(scroll, 0);
innerContainer.setLayout(new GridLayout(1, false));
// for loop that adds widgets to innerContainer
scroll.setExpandHorizontal(true);
scroll.setExpandVertical(true);
scroll.setContent(innerContainer);
scroll.setSize(innerContainer.computeSize(SWT.DEFAULT, SWT.DEFAULT));
parent.layout(true);
}
В список вопросов добавлены виджетыв цикле for и содержатся в innerContainer
.
Ожидание: поскольку innerContainer
слишком велик для родительского элемента, должны быть полосы прокрутки.
Что на самом деле происходит:полос прокрутки нет.
Как мне решить эту проблему?