2012-01-10 55 views
0

我有几个Vaadin选项卡其中之一是显示一个表和一些按钮,另一个显示分层Vaadin树并具有自定义搜索框。我已经将标签的大小设置为H:420px W:250px,因此它们具有相同的大小,如果表格变得太大或树变长,我得到一个滚动条(这就是我想要的)问题是其他组件就像搜索框和按钮被迫在布局的底部,所以如果我想访问按钮/搜索框,我必须一直向下滚动,以便我可以使用我想要的组件。我曾试图只为组件添加第二个布局,但它并没有帮助: - /这是我迄今为止尝试:Vaadin - 多个TabSheet布局

TabSheet tabs = new TabSheet(); 
tabs.setWidth("250"); 
tabs.setHeight("420"); 

VerticalLayout lyTab = new VerticalLayout(); 
tabOne = tabs.addTab(lyTab, "Tab One", null); 
//added an extra layout for the Buttons : 
HorizontalLayout lyButton = new HorizontalLayout(); 
lyButton.addComponent(applyButton); 
lyButton.addComponent(selectAll); 
lyTab.addComponent(lyButton); 

我的想法是到第二个布局增加了标签页,所以我可以修复它的位置,所以它不能移动,但它没有工作。有任何想法吗 ?

回答

1

如果我理解你的问题正确这里是如何与一个表做到这一点:

VerticalLayout tab = new VerticalLayout(); 
tab.setSizeFull(); 

Table table = new Table(); 
table.setSizeFull(); 
tab.addComponent(table); 
tab.setExpandRatio(table, 1); 

HorizontalLayout buttons = new HorizontalLayout(); 
buttons.addComponent(new Button()); 
buttons.addComponent(new Button()); 
tab.addComponent(buttons); 

Tab tabOne = tabs.addTab(tab, "Tab One", null); 

在这种情况下,该表是全尺寸并在需要时显示滚动条。

一棵树,从上面代码替换表部分:

Panel panel = new Panel(); 
panel.setSizeFull(); 
panel.getContent().setSizeUndefined(); 
tab.addComponent(panel); 
tab.setExpandRatio(panel, 1); 

Tree tree = new Tree(); 
tree.setSizeUndefined(); 
panel.addComponent(tree); 

这里的树是不能显示滚动条,所以我们把它包一个全尺寸的面板,显示滚动条在需要的时候里面。

0

我在Vaadin 7.4.8中遇到了类似的问题,并且能够使其工作。

1 - 我确定的第一件事是父组件(在我的情况下,我有两个VerticalLayout被添加到另一个)setSizeFull()。他们被添加到视图。就我而言,我忘了将它设置在一个扩展了VerticalLayout和Implements View的类上,这个类由导航器调用。

2 - 其他重要的细节是,tabSheet - 在哪个选项卡上添加了addTab(组件),还必须设置setSizeFull(),以便该选项卡可以使用所有未使用的空间,尤其是朝向底部。

2.1 - 增加了一个setExpandRatio(tabSheet,1),以便它向上移动。

3 - 现在,对于使用addTab(component)添加到tabSheet的组件(VerticalLayout),我添加了两个组件,一个是Horizo​​ntalLayout,第二个是VerticalLayout。

所以我确信:

  • 它有setSizeFull
  • setExpandRatio(Horizo​​ntalLayout,.5f);
  • setExpandRatio(VerticalLayout,.5f);