单页应用布局其实很容易实现。
您要做的第一件事是使用 GWT布局面板定义一般布局。对于您的布局,我建议使用DockLayoutPanel。
Content content = new Content();
Button switchContent = new Button(content);
Navigation navigation = new Navigation();
navigation.add(switchContent);
DockLayoutPanel pageLayout = new DockLayoutPanel(Unit.EM);
p.addWest(new HTML(navigation), 7.5);
p.add(new HTML(content));
在这里,导航面板的宽度将被固定,而内容将占据剩余空间。您必须传递对内容区域进行切换的按钮(或其他一些小部件)的引用,将按钮添加到导航区域等等。
把它放到一个类中,例如MasterPageFactory
:
public class MasterPageFactory {
private MasterPageFactory() {}
public static MasterPage newInstance() {
Content content = new Content();
Button switchContent = new Button(content);
Navigation navigation = new Navigation();
navigation.add(switchContent);
DockLayoutPanel masterPage = new DockLayoutPanel(Unit.EM);
masterPage.addWest(new HTML(navigation), 7.5);
masterPage.add(new HTML(content));
return masterPage;
}
}
现在,在你的EntryPoint
课堂上,调用工厂:
RootLayoutPanel.get().add(MasterPageFactory.newInstance());
这个例子应该让你有个想法。其他选择是使用像 Guice 或命令模式这样的 DI 框架。