0

我需要一个 GWT 中的 FlexTable,我可以在运行时添加项目。FlexTable 位于 ScrollPanel 内,因此当水平内容超出显示区域时,会出现滚动条。问题是当有 2-3 列时,它们的间距很宽,但随着列数的增加,单元格占用的最小面积为 100 像素。我需要确保 Cell 总是只占用 100px。我一直在关注但没有成功。

myflextable.getCellFormatter().setWidth(0, col, "100px");

4

2 回答 2

0

问题可能是最初设置的 flextable 太宽。默认情况下它将填充滚动面板,然后列将拉伸到最大宽度。您应该在开始时明确设置 flextable 的宽度,并且在运行时添加更多列时它将自动正确调整大小。

这是一个示例,当您最初有一行和两个 100px 列时:

ft = new FlexTable();
ft.addStyleName("flextable");
ft.setWidth("200px");
for (int x = 0; x < 2; x++) {
    ft.setText(x, 0, "cell");
    ft.getCellFormatter().addStyleName(x, 0, "testcell");
}
scrollpanel.add(ft);

你的CSS应该这样说:

.flextable {
    table-layout: fixed;
}
.testcell {
    width : 100px;
}

请注意,flextable 最初设置为 200px 宽度,因为我们从两列开始。在 CSS 文件中,必须设置 table-layout 属性,否则当您添加更多列时,列将变得小于 100 像素(直到单元格达到其最小宽度,由其内容定义)。

此外,请记住将样式名称“testcell”添加到您在运行时添加的任何新单元格中。

于 2013-04-05T14:16:27.557 回答
0

请尝试使用 getFlexCellFormatter().setWidth() 方法。还请检查您是否将弹性表宽度设置为 100%。

于 2013-04-05T11:02:15.243 回答