我在 GXT 中有一个网格,如下所示:
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
ColumnConfig config = new ColumnConfig();
config.setId("type");
config.setHeader("Type");
config.setWidth(50);
configs.add(config);
config = new ColumnConfig();
config.setId("text");
config.setHeader("Info");
config.setWidth(75);
configs.add(config);
columnModel = new ColumnModel(configs);
listStore = new ListStore<DtoModel>();
grid = new Grid<DtoModel>(listStore, columnModel);
grid.setAutoHeight(true);
grid.setAutoWidth(true);
VerticalPanel verticalPanel = new VerticalPanel();
verticalPanel.setLayout(new FillLayout());
verticalPanel.add(grid);
这可以很好地创建网格,但有一个异常(exception)——宽度限制为列宽之和。当我放弃列宽时,网格最终宽度为 0。
有没有办法让这个网格及其列扩展以填充其可用的整个区域?
编辑: 困难之一是 ColumnConfig.setWidth()
方法仅采用 int
作为参数,所以我可以' t 将“100%”指定为字符串或类似的内容。
最佳答案
这样做的方法是:
grid.getView().setAutoFill(true);
这里有一个要记住的关键点:使用 setAutoFill() 调整列大小时,gxt 将始终调整所有其他列的大小,以便网格继续适合容器。如果没有自动填充,如果您只使用自动扩展列,如果您调整一列的大小,网格可能会变得比包含组件更大(或更小),在这种情况下,您必须手动调整网格大小以适应 - 这不仅仅是一个痛苦,在大多数情况下,这对于最终用户来说几乎是不可能的。
关于gwt - 如何让 GXT 网格占据所有可用宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3917205/