我想有一個ScrolledComposite
它有一個父母GridLayout
但滾動條不顯示,除非我使用FillLayout
。我與FillLayout
的問題在於,它的子女佔用了可用空間的相等部分。ScrolledComposite父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);
}
我有同樣的問題,你有沒有找到解決方案? –