我必须扩展一个给定的GWT项目(我们称其为X),并想添加一个窗口以可视化我的东西。由于我是GWT的新手,所以我创建了一个测试项目并尝试创建TabLayoutPanel。在此测试项目中,应按原样显示TabLayoutPanel,但在X中则不显示:

http://abload.de/img/tablayoutpanelc1svz.png

TabLayoutPanel的代码来自GWT教程

uiBinder

<!-- HelloWidgetWorld.ui.xml -->
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<g:TabLayoutPanel ui:field='tabLayoutPanel' barUnit='EM' barHeight='3'>
    <g:tab>
        <g:header size='7'><b>HTML</b> header</g:header>
        <g:Label>able</g:Label>
    </g:tab>
    <g:tab>
        <g:customHeader size='7'>
            <g:Label>Custom header</g:Label>
        </g:customHeader>
        <g:Label>baker</g:Label>
    </g:tab>
</g:TabLayoutPanel>
</ui:UiBinder>


爪哇

public class HelloWidgetWorld extends Composite
{
    interface IuiBinder extends UiBinder<Widget, HelloWidgetWorld> {}
    private static IuiBinder uiBinder = GWT.create(IuiBinder.class);

    @UiField TabLayoutPanel tabLayoutPanel;

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


在我的测试项目中使用此代码是

public class Test implements EntryPoint
{
    private Window HelloWidgetWorldWindow;
    public void onModuleLoad()
    {
        RootLayoutPanel.get().add(new HelloWidgetWorld());
    }
}


通过尝试缩小问题的范围,我最终在X中使用了完全相同的代码,但仍然遇到问题。所以我将此代码复制到X中,因此onModuleLoad()代码相同。我还从测试项目中将css和html文件复制到X,但是面板看起来仍然不应该。

由于代码现在都相同,因此可以在其他项目文件或设置中使用吗?

现在花5个小时来解决问题,但没有成功,我真的希望您能为我服务!

/编辑

我现在正尝试从给定的项目开始重新构建给定的项目X,然后导入代码,libs,js,css,*。xml等。每一步之后,我检查我的最小示例是否有效。也许通过这种方式,我可以找出哪个组件破坏了TabLayoutPanel的可视化效果。我将在这里更新结果。

最佳答案

在任何窗口小部件(垂直/水平/ ...)面板中添加TabLayoutPanel
选项卡不会出现,因为TabLayoutPanel没有任何高度或宽度(主要是百分比不起作用,您必须使用其他单位)。
检查您是否正在使用GWT 2.5中的新版式面板之一

07-26 02:38