我是GWT的新手,我正在努力完成我的第一个网页。
我创建了2个复合小部件 - ListWidget
和MaintenanceWidget
。当我将它们都添加到FlowPanel
时,它们都会显示出来。但是,当我尝试使用SplitLayoutPanel
时,取决于我是如何做的,要么都没有显示,要么只显示其中一个。
以下是我的代码:
public MainPanel(){
list = new ListWidget();
maintenance = new MaintenanceWidget();
panel = new SplitLayoutPanel();
panel.addWest(list, 200);
panel.addNorth(maintenance, 250);
initWidget(panel);
}
在我的入口点onModuleLoad()方法中,我创建了一个MainPanel
的实例并将其添加到根窗格。
使用此代码,我会在列表所在的西部找到一个空白区域,顶部的维护小部件位于其下方。
我尝试了panel.add****()
方法的不同配置,但没有任何结果让我得到我正在寻找的结果。
有什么想法吗?谢谢!
答案 0 :(得分:1)
确保您的HTML模板中有doctype
声明(例如<!doctype html>
),因为SplitLayoutPanel
要求浏览器在标准模式下工作。
答案 1 :(得分:1)
我找到了一些示例代码here,它使用了我之前从未见过的方法。
我的代码现在如下所示:
public MainPanel(){
list = new ListWidget();
maintenance = new MaintenanceWidget();
panel = new SplitLayoutPanel();
panel.setPixelSize(500, 400);
panel.addWest(list, 200);
panel.add(maintenance);
initWidget(panel);
}
现在它有效。谢谢你的帮助!
答案 2 :(得分:0)
如果没有弄错,SpliLayoutPanel必须附在文档正文上。 尝试类似:
public void onModuleLoad() {
SplitLayoutPanel panel = new SplitLayoutPanel();
panel.addWest(new Label("WEST"), 50);
panel.addNorth(new Label("NORTH"), 50);
panel.addEast(new Label("EAST"), 50);
panel.addSouth(new Label("SOUTH"), 50);
panel.add(new Label("CONTENT HERECONTENT HERECONTENT HERECONTENT HERECONTENT HERECONTENT HERE"));
RootLayoutPanel.get().add(panel); //This gets the body element and attaches itself to it, then adds panel.
}
不应该太难将其应用到您的代码中。