我正在尝试创建一个包含List的PreferencePage。列表可以变大,并在列表下面有与列表交互的按钮。如果按钮始终可见,但是当列表变大时,PreferencePage将使用滚动条自动扩展,这将非常有用。
我现在的解决方案是一个包含List的ScrolledComposite。问题是ScrolledComposite没有填写布局。我必须通过setSize
手动设置大小。
高度的SWT.DEFAULT:
425身高:
带有列表的ScrolledComposite代码:
ScrolledComposite scroll = new ScrolledComposite(
comp,
SWT.H_SCROLL | SWT.V_SCROLL);
Composite composite = new Composite(scroll, SWT.NONE);
scroll.setContent(composite);
scroll.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,true,2,1));
GridLayout layout = new GridLayout(1, true);
composite.setLayout(layout);
List list = new List(composite, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI);
GridData grid = new GridData(SWT.FILL, SWT.FILL, true, true);
grid.horizontalSpan=1;
list.setLayoutData(grid);
scroll.setExpandHorizontal(true);
composite.setSize(composite.computeSize(SWT.DEFAULT, 425));
问题是如何让ScrolledComposite填充布局而不手动设置高度值或阻止PreferncePage自动扩展。使用表也会自动扩展孔PreferencePage。设置scroll.setExpandVertical(true)
还会在PreferencePage上创建滚动条,并且列表会扩展。
答案 0 :(得分:0)
使用heightHint
的{{1}}值指定列表的高度。由于首选项页面总是尝试将页面大小调整为控件的完整大小,因此需要在某处设置高度:
GridData