我需要在GWT中使用FlexTable,我可以在运行时添加项目。 FlexTable位于ScrollPanel内部,因此当水平内容超出显示区域时,会出现滚动条。 问题是当有2-3列时它们间隔很宽,但随着列数增加,单元格所需的最小面积为100px。 我需要确保Cell总是只需要100px。我一直在追随但没有成功。
myflextable.getCellFormatter()。setWidth(0,col,“100px”);
答案 0 :(得分:0)
请尝试使用getFlexCellFormatter()。setWidth()方法。 请检查您是否将柔性宽度设置为100%。
答案 1 :(得分: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属性,否则当您添加更多列时,列将小于100px(直到单元格达到其最小宽度,由其内容定义)。
另外,请记住将样式名称“testcell”添加到您在运行时添加的任何新单元格。