2011-11-22 54 views
1

我正在使用GWT 2.4。我想使用StackLayoutPanel小部件构建内容部分。不过,我无法垂直调整窗口小部件的大小以占用尽可能多的空间。我在发现GWT:我如何正确设置StackLayoutPanel的高度?

p.setHeight("100%"); 

实际上并没有做任何事情。有没有人有任何建议来计算StackLayoutPanel的适当高度,以便占用尽可能多的空间,但不是更多?这里是我使用的代码...

final StackLayoutPanel p = new StackLayoutPanel(Unit.EM); 
    p.setHeight("100%"); 
    int i=0; 
    for (final Node node : nodes) { 
     if (node != null) { 
      final Widget childWidget = getWidget(node.getChildren()); 
      if (childWidget != null) { 
       final String sectionTitle = node.getAttributes().get(NAME_ATTR) != null ? node.getAttributes().get(NAME_ATTR).getValue() : "Section " + (i+1); 
       p.add(childWidget, sectionTitle, 2); 
      } // if 
     } // if 
     i++; 
    } // for 
    return p; 

这是最终调用StackLayoutPanel的代码。请注意,父控件“ScrollPanel”设置height =“100%”,但这对导致StacklayoutPanel填充其所有空间没有影响。

  final ScrollPanel childpanel = new ScrollPanel(); 
      childpanel.setHeight("100%"); 
      // Below, a StackLayoutPanel is returned as the child widget 
      final Widget childWidget = xmlToHtmlService.getWidget(tabNode.getChildren()); 
      childpanel.add(childWidget); 

谢谢, -

回答

0

最佳大小的方式的任何类型的LayoutPanel是将其add到另一个LayoutPanel并从父面板设置其大小。直接设置尺寸从来不会像我想要的那样工作。

这是一个与其他GWT小部件完全不同的设置,它只是想添加和调整大小。你可以在http://code.google.com/webtoolkit/doc/latest/DevGuideUiPanels.html#LayoutPanels上阅读。

有很多要了解LayoutPanel s。但是,一旦你将它们设置正确,它们就很自然地使用了,你可以用它们做很多精确的布局。

+0

嗨,我已经这么做了 - 我包含上面的代码。我将父级ScrollPanel的高度设置为100%,但StackLayoutPanel不调整以适合父级的高度。 StackLayoutPanel在这方面是独一无二的吗? – Dave