我正在使用ext-gwt并且无法弄清楚如何拆分面板以便我有2个小部件,每个小部件在可调整大小的拆分器的每一侧,两个小部件的高度为100%并且他们的宽度是可变的。
从本质上讲,我想要的是:
-----------------------------------------
| Widget1 | Widget2 |
| | |
| | |
| | |
| | |
| <-|-> |
| | |
| | |
| | |
| | |
-----------------------------------------
我尝试使用BorderLayout,但我认为我做错了,它不起作用(小部件的垂直高度不会占据整个屏幕)。任何人都可以帮忙吗?这是我尝试过的最新形式:
public void onModuleLoad() {
Viewport v = new Viewport();
v.setLayout(new RowLayout(Orientation.HORIZONTAL));
ContentPanel panel1 = new ContentPanel();
panel1.setHeading("Panel 1");
ContentPanel panel2 = new ContentPanel();
panel2.setHeading("Panel 2");
v.add(panel1, new RowData(.3, 1));
v.add(new SplitBar(LayoutRegion.EAST, panel1));
v.add(panel2, new RowData(.7, 50));
RootPanel.get().add(v);
}
谢谢!
答案 0 :(得分:4)
非常简单。 首先确保您的视口具有合适的布局。 然后你可以使用如下的边框布局进行拆分。在示例中将此面板添加到视口中。 (首选边框布局到分割器以防我以后想要更多区域) 然后只需将您的数据/小部件/面板添加到两个内容面板中。
package com.gerharddavids.example;
import com.extjs.gxt.ui.client.Style.LayoutRegion;
import com.extjs.gxt.ui.client.util.Margins;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
import com.google.gwt.user.client.Element;
public class BorderLayoutExample extends LayoutContainer {
protected void onRender(Element target, int index) {
super.onRender(target, index);
final BorderLayout layout = new BorderLayout();
setLayout(layout);
setStyleAttribute("padding", "10px");
ContentPanel west = new ContentPanel();
ContentPanel center = new ContentPanel();
//uncomment this section if you dont want to see headers
/*
* west.setHeaderVisible(false);
* center.setHeaderVisible(false);
*/
BorderLayoutData westData = new BorderLayoutData(LayoutRegion.WEST, 150);
westData.setSplit(true);
westData.setCollapsible(true);
westData.setMargins(new Margins(0,5,0,0));
BorderLayoutData centerData = new BorderLayoutData(LayoutRegion.CENTER);
centerData.setMargins(new Margins(0));
add(west, westData);
add(center, centerData);
}
}