2010-08-31 78 views
3

我有一個用UIBinder製作的普通TabLayoutPanel。標籤呈現,但沒有內容。它在HTML中,但它總是摺疊(在元素上設置的內聯樣式會使其摺疊)。據我所知,這與我見過的每個TabLayoutPanel示例都是相同的。其他小部件渲染正常。該項目只是默認HTML和代碼被剝離的基本示例。GWT TabLayoutPanel總是摺疊

的XML是:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> 
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 
xmlns:g="urn:import:com.google.gwt.user.client.ui"> 
<g:TabLayoutPanel barHeight='22' barUnit='PX'> 
    <g:tab> 
    <g:header>Tab A</g:header> 
    <g:HTML> 
    asdf 
    <p>asdfasdf</p> 
    </g:HTML> 
    </g:tab> 
    <g:tab> 
    <g:header>Tab B</g:header> 
    <g:Label>blah</g:Label> 
    </g:tab> 
    <g:tab> 
    <g:header>Tab C</g:header> 
    <g:Label>blah</g:Label> 
    </g:tab> 
</g:TabLayoutPanel> 
</ui:UiBinder> 

和Java是:

public class Main extends Composite { 

private static MainUiBinder uiBinder = GWT.create(MainUiBinder.class); 

interface MainUiBinder extends UiBinder<Widget, Main> { 
} 

public Main() { 
    initWidget(uiBinder.createAndBindUi(this)); 
} 
} 

而且我將它添加到我的應用程序是這樣的:

public void onModuleLoad() { 
    RootPanel.get().add(new Main()); 
} 

我驚呆了。這應該很簡單。我一定會錯過一些愚蠢的東西。有任何想法嗎?

回答

6

將其添加到RootLayoutPanel。

public void onModuleLoad() { 
    RootLayoutPanel.get().add(new Main()); 
} 

不要忘了在你的html中使用正確的DOCTYPE。

<!DOCTYPE html> 
+0

嘆了口氣,就是這樣。 RootLayoutPanel而不是RootPanel。文檔類型是正確的。 – 2010-08-31 20:10:35