2012-11-05 27 views
0

我无法用Vaadin创建流体布局。据我了解,为了根据容器的内容计算容器的尺寸,我必须使用setSizeUndefined()方法。
这可以正常工作,但是当我想添加组件时,会出现一个问题,它将占用所有可用空间的容器与未定义的大小。我无法得到这个工作。流体布局:全宽不适用于容器尺寸未定义

这里是什么,我试图做一个简单的例子:

VerticalLayout layout = new VerticalLayout(); 
layout.setSizeUndefined(); 
layout.setMargin(false); 

layout.addComponent(createButton("A somewhat longer label")); 
layout.addComponent(createButton("Short label")); 

private Button createButton(String label) { 
    Button button = new Button(label); 
    button.setSizeFull(); 
    button.setWidth("100%"); 
    return button; 
} 

的按钮不占用垂直布局容器的整个宽度。我已经在这里和那里读到,不允许在尺寸未定义的容器中设置“100%”尺寸,但是我怎么能达到我想实现的目标?记住我需要流体布局的未定义尺寸?
如果有人认为未定义的大小对我的用例来说不是必需的,我会很乐意提供更多的信息。我有一个很强的背景,可能会导致从错误的角度来看待这个问题。

回答

0

您是对的,您不能在VerticalLayout中使用尺寸未定义的相对大小的组件。您正在查找的功能存在于名为WeeLayout的附加组件中。

+1

所以我必须使用一个插件 - 和一个BETA版本 - 来实现这样的基本功能?我对Vaadin的最初爱情正在慢慢消失:( – RIAstar

+0

使用插件比平常更多,它们让Vaadin变得更加伟大。我可以告诉你,WeeLayouts的作者是一直致力于核心布局的人,所以他知道他在做什么。 –