2010-09-28 138 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选择器。