【问题标题】:GWT TabLayoutPanel is always collapsedGWT TabLayoutPanel 始终折叠
【发布时间】:2023-07-02 12:45:01
【问题描述】:

我有一个用 UIBinder 制作的简单的 TabLayoutPanel。选项卡呈现,但没有任何内容。它在 HTML 中,但它总是折叠的(在元素上设置的内联样式使其折叠)。据我所知,这与我见过的每个 TabLayoutPanel 示例相同。其他小部件渲染良好。该项目只是去掉了默认 HTML 和代码的基本示例。

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());
 }

我惊呆了。这应该很容易。我一定错过了一些愚蠢的东西。有什么想法吗?

【问题讨论】:

    标签: gwt uibinder gwt-tablayoutpanel


    【解决方案1】:

    将其添加到 RootLayoutPanel。

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

    别忘了在你的 html 中使用正确的 DOCTYPE。

    <!DOCTYPE html>
    

    【讨论】:

    • 叹息,是的,就是这样。 RootLayoutPanel 而不是 RootPanel。 doctype 是正确的。