我正在展示一个太低的向导(代码here),因此内容没有完全显示(见下面的截图):
如何强制向导具有最小高度?
根据this question here on StackOverflow上的答案,向导的高度与向导中最大的向导页面的高度相同,但我的向导只能根据内容来调整大小最大的页面,我也尝试使用WizardPage类中的代码设置第一个可见向导页面的最小高度:
@Override
public void createControl(Composite parent) {
// create the composite to hold the widgets
Composite composite = new Composite(parent, SWT.NULL);
composite.setSize(300, 1024); // TODO: Does this work?
GridData gridData = new GridData(300, 1024);
gridData.heightHint = 1024;
gridData.minimumHeight = 1024;
composite.setLayoutData(gridData);
......但到目前为止没有成功。
任何提示?
答案 0 :(得分:4)
尝试设置
parent.setLayout(new GridLayout());
到createControl()
第一页的实施。
您在该方法中获得的父项似乎有PageContainerFillLayout
的实例作为布局,而不是GridLayout
。
如果您可以访问WizardDialog,也可以调用
wizardDialog.setMinimumPageSize(300, 1024)
答案 1 :(得分:0)
您可能需要为GridData指定高度提示。
或者,您可以使用三列GridLayout并获取第一列之后的所有行以跨越第2列和第3列。我倾向于使用GridLayout并且之前没有遇到此问题。
答案 2 :(得分:0)
您可以使用以下代码:
parent.addControlListener(new ControlAdapter() {
public void controlResized(ControlEvent event) {
parent.setSize(parent.computeSize(490, 320));
}
});
答案 3 :(得分:0)
我只是遇到了一个非常类似的问题(在Windows上):没有完全显示向导页面中没有消息的向导。快速为我解决此问题的方法是,在向导页面构造函数中只添加一个空格的消息:
class Page extends WizardPage {
Page() {
super("page.id", "Page title", null);
setMessage(" ");
接受的答案对我不起作用(向导中包含很多字段)。