2010-09-28 150 views
3

我正在使用GWT,並希望開發一個像iGoogle中的垂直標籤面板。GWT垂直標籤,如iGoogle

如何才能實現相同?

+1

您的意思是? http://advanced-gwt.sourceforge.net/demo/index.html – Chii 2010-09-28 10:51:08

+0

@Chii是的,這就是我的意思 – 2010-09-28 12:22:18

回答

-1

我想你要找的是TabLayoutPanel(向下滾動一下)。它的效果很好,它是一個香草GWT小部件,不需要任何第三方庫。

+0

是的,但它是一個水平標籤佈局面板! – 2010-09-29 06:06:03

+0

對不起,我誤解了這個問題。使用鏈接和CSS構建水平標籤面板非常簡單。使用完整的第三方工具包(在這一點上不是真正的GWT)可能是矯枉過正的。不知道你是否真的需要投票給我:( – 2010-09-29 13:27:14

8

我有同樣的問題,並決定不使用第三方庫只是一個小部件。這是我最終使用的一個輕量級解決方案 - 它基於調整樣式。

verticaltabpanel.css:

@external gwt-TabLayoutPanel; 
.gwt-TabLayoutPanel>div { 
    position: static !important; 
} 
.gwt-TabLayoutPanel { 
    margin-left: 30px; 
} 
@external gwt-TabLayoutPanelTabs; 
.gwt-TabLayoutPanelTabs { 
    top: 0 !important; 
    width: 140px !important; 
} 
@external gwt-TabLayoutPanelTab; 
.gwt-TabLayoutPanelTab { 
    display: block !important; 
    margin-top: 2px; 
    padding: 8px 6px !important; 
} 
@external gwt-TabLayoutPanelContentContainer; 
.gwt-TabLayoutPanelContentContainer { 
    left: 150px !important; 
    top: 0 !important; 
} 

將它添加到資源通常是:當你的應用程序啓動

public interface YouAppResources extends ClientBundle { 

    @Source("verticaltabpanel.css") 
    CssResource verticalTabPanelStyles(); 
} 

然後把它注射:

resources.verticalTabPanelStyles().ensureInjected(); 

定義標籤面板在像這樣的模板:

<ui:style> 
    .tabPanel { 
     height: 400px; 
     width: 800px; 
    } 
</ui:style> 
<g:TabLayoutPanel addStyleNames="{style.tabPanel}" barUnit='PX' barHeight='0'> 
</g:TabLayoutPanel> 

請注意,您必須設置高度和寬度,並且應該添加未設置的樣式。

這種方法的缺點是,應用程序中的所有選項卡面板現在都是垂直的。如果你需要一個水平的,你可以使用舊的TabPanel(注意它已被棄用)。對我的情況來說很好,因爲我的應用程序中有許多垂直選項卡面板,只有一個水平面。

+0

這看起來更好,我喜歡CSS方法,而不是包括一個大型庫或手動覆蓋類 – 2011-07-26 13:47:22

+0

是的+1,這是更好的方法。 – 2012-04-11 16:57:56

0

thx爲您的答案,megas。

一個擴展可以使用一些TabLayoutPanel與水平(原始)和一些垂直(新)佈局: 可以添加ID(即#myVertTab)到CSS選擇器。