ListGrid列自动适合布局

时间:2012-10-08 08:17:38

标签: gwt smartgwt

ListGrid listGrid = new ListGrid();

listGrid.setWidth100();

listGrid.setFields(f1, f2);
vlayout.addMember(listGrid);

listGrid.setAutoFitFieldsFillViewport(false);
listGrid.setAutoFitFieldWidths(false);
listGrid.setCanAutoFitFields(false);

ListGridField[] listGridFields = listGrid.getFields();
for (ListGridField listGridField : listGridFields) {
  listGridField.setAutoFitWidth(true);
}

我有这些行但是当我调整我放置listGrid的窗口时,字段不会调整大小并适合新的宽度。

有人可以帮助我让这个listGrid的字段宽度适合窗口吗?

然后,如果我把它:

ListGridField[] listGridFields = listGrid.getFields();
for (ListGridField listGridField : listGridFields) {
  listGridField.setWidth("100%");
}

第一次调整窗口大小时,它解决了问题。但是,调整字段大小会在listGrid的最后一个字段和边框之间的右侧产生间隙。

有没有办法解决这个问题?

摘要:
有没有办法通过调整窗口大小来使listGrid自动调整大小?
有没有办法让listGrid的字段始终适合listGrid的大小,它总是适合其父级的宽度?

是否可以获得此结果:http://jsfiddle.net/lnplnp/kJLGd/

2 个答案:

答案 0 :(得分:1)

listGrid.setWidth("100%");
你试过这个吗?如果它没有填满窗口检查父约束。

答案 1 :(得分:0)

最后我尝试了listGridField.setWidth("100%");

所以答案是:

ListGridField[] listGridFields = listGrid.getFields();
for (ListGridField listGridField : listGridFields) {
  listGridField.setWidth("100%");
}
listGrid.getField("FIELDNAME").setWidth(30);

将修复宽度分配给至少一个字段,以响应我的期望。

它适用于大多数情况,但有时此方法无法正常工作。我无法描述具体情况。如果我找到了什么使它不起作用,我将编辑此响应。