我写下面的代码,我无法将面板设置到容器的最右侧。我希望控制所有侧面移动面板,如东,西,北和南。
public void onModuleLoad() {
Viewport viewport = new Viewport();
viewport.setLayout(new FlowLayout());
viewport.add(createContainer());
RootPanel.get().add(viewport);
}
private Widget createContainer() {
// TODO Auto-generated method stub
LayoutContainer container = new LayoutContainer();
container.setLayout`enter code here`(new BorderLayout());
ContentPanel panel = new ContentPanel(new FitLayout());
panel.setHeading("The Legend");
BorderLayoutData westData = new BorderLayoutData(LayoutRegion.WEST, 250);
westData.setSplit(true);
westData.setCollapsible(true);
westData.setMargins(new Margins(0, 3, 0, 0));
container.add(panel, westData);
return container;
}
有人可以帮忙吗?
答案 0 :(得分:1)
看起来你正在使用GXT。这是一个非常重要的信息,因为GXT布局使用的是除本机GWT布局之外的其他类。
看看Sencha Showcase:
http://www.sencha.com/examples/#ExamplePlace:borderlayout
BorderLayout示例显示了如何创建边框布局。
首先创建一个BorderLayoutContainer:
final BorderLayoutContainer con = new BorderLayoutContainer();
con.setBorders(true);
然后为您喜欢的区域创建面板:
ContentPanel north = new ContentPanel();
ContentPanel west = new ContentPanel();
ContentPanel center = new ContentPanel();
center.setHeadingText("BorderLayout Example");
center.setResize(false);
center.add(new Label("center"));
ContentPanel east = new ContentPanel();
ContentPanel south = new ContentPanel();
创建ContentPanels后,为每个ContentPanel定义BorderLAyoutData:
BorderLayoutData northData = new BorderLayoutData(100);
northData.setMargins(new Margins(5));
northData.setCollapsible(true);
northData.setSplit(true);
BorderLayoutData westData = new BorderLayoutData(150);
westData.setCollapsible(true);
westData.setSplit(true);
westData.setCollapseMini(true);
westData.setMargins(new Margins(0, 5, 0, 5));
MarginData centerData = new MarginData();
BorderLayoutData eastData = new BorderLayoutData(150);
eastData.setMargins(new Margins(0, 5, 0, 5));
eastData.setCollapsible(true);
eastData.setSplit(true);
BorderLayoutData southData = new BorderLayoutData(100);
southData.setMargins(new Margins(5));
southData.setCollapsible(true);
southData.setCollapseMini(true);
定义布局后,只需将小部件添加到BorderLAyoutContainer:
con.setNorthWidget(north, northData);
con.setWestWidget(west, westData);
con.setCenterWidget(center, centerData);
con.setEastWidget(east, eastData);
con.setSouthWidget(south, southData);
最后,将BorderLAyoutContainer添加到viewPort:
viewport.add(con);
要将小部件放在最右侧,请使用:
con.setEastWidget(widget, eastData);
希望有所帮助。
答案 1 :(得分:0)
我也面临着这个问题,因为每当我试图坍塌北方时,那个空间就不会被南方占据,反之亦然。我希望每当我们折叠contentPanel(北或南)时,其空间应由其他面板占用。
我在我的项目中使用gxt 3.0.1。
对于gxt 2.x,可以使用FitLayout()并通过设置布局来完成,但在GXT 3.0.1中,API是不同的。我无法使用FitLayout()。
任何新想法的人。