我必须扩展一个给定的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可视化。我会在这里更新结果。
答案 0 :(得分:1)
在任何小部件(垂直/水平/ ...)面板中添加TabLayoutPanel
标签不显示,因为TabLayoutPanel没有任何高度或宽度(主要是百分比不起作用,您必须使用不同的单位)。
检查您是否正在使用GWT 2.5中的一个新布局面板