2012-01-10 86 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);