親がGridLayout
のScrolledComposite
がありますが、FillLayout
を使用しない限り、スクロールバーは表示されません。 FillLayout
の私の問題は、その子どもたちが利用可能なスペースの等しい部分を取ることです。ScrollledComposite親とGridLayout
私のケースでは、2つのウィジェットがあります。上部に1つはウィンドウの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);
}
私は同じ問題を抱えていますが、解決策を見つけましたか? –