我希望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%,但这仍然行不通。不过,感谢您的建议,这似乎很有用。还有其他建议吗?
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);