一尘不染

在GWT中创建流畅的面板来填充页面吗?

java

我希望GWT中的面板可以填充页面,而无需实际设置大小。有没有办法做到这一点?目前,我有以下内容:

public class Main  implements EntryPoint
{
    public void onModuleLoad()
    {
        HorizontalSplitPanel split = new HorizontalSplitPanel();
        //split.setSize("250px", "500px");
        split.setSplitPosition("30%");

        DecoratorPanel dp = new DecoratorPanel();
        dp.setWidget(split);

        RootPanel.get().add(dp);
    }

}

使用前面的代码片段,没有任何显示。我是否缺少方法调用?

谢谢。


更新08年9月17日在20:15

我在每一侧都放了一些按钮(明确设置了它们的大小),但这仍然行不通。我真的很惊讶,没有这样的FillLayout类或setFillLayout方法或setDockStyle(DockStyle.Fill)之类的东西。也许不可能吗?但是对于GWT来说,我认为这是有可能的。

更新08年9月18日在14:38

我尝试将RootPanel的宽度和高度设置为100%,但这仍然行不通。不过,感谢您的建议,这似乎很有用。还有其他建议吗?


阅读 248

收藏
2020-12-03

共1个答案

一尘不染

Google已通过以下常见问题解答之一回答了您问题的主要内容:http
:
//code.google.com/webtoolkit/doc/1.6/FAQ_UI.html#How_do_I_create_an_app_that_fills_the_page_vertically_when_the_b

要点是不能将高度设置为100%,您必须执行以下操作:

final VerticalPanel vp = new VerticalPanel();
vp.add(mainPanel);
vp.setWidth("100%");
vp.setHeight(Window.getClientHeight() + "px");
Window.addResizeHandler(new ResizeHandler() {

  public void onResize(ResizeEvent event) {
    int height = event.getHeight();
    vp.setHeight(height + "px");
  }
});
RootPanel.get().add(vp);
2020-12-03