我想在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);
}
}
Run Code Online (Sandbox Code Playgroud)
使用前面的代码段,没有任何内容显示出来.有没有我失踪的方法电话?
谢谢.
更新于2008年9月17日20:15
我在每一侧放了一些按钮(明确设置了它们的大小),但仍然无效.我真的很惊讶,不像FillLayout类或setFillLayout方法或setDockStyle(DockStyle.Fill)或类似的东西.也许这不可能?但是,就像GWT一样受欢迎,我认为这是可能的.
更新于2008年9月18日14:38
我已经尝试将RootPanel的宽度和高度设置为100%,但仍然无法正常工作.谢谢你的建议,但似乎它可能会起作用.还有其他建议吗?
Ben*_*son 19
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);
Run Code Online (Sandbox Code Playgroud)
Bra*_*rad 13
本的答案非常好,但也过时了.在GWT 1.6中需要调整大小处理程序,但我们现在处于2.4.您可以使用DockLayoutPanel让您的内容垂直填充页面.请参阅使用此面板的示例邮件应用程序.