我有一个ScrollTable
动态填充的。(行和列是即时计算的并填充数据)。我的ScrollTable
支持水平和垂直滚动。当我有很多列并且我水平滚动以查看数据时,我看到Header
&DataTables
的呈现方式未对齐。我怀疑 GWT 渲染发生得很慢,这导致了这个问题。
代码如下:
public class TestScrollTable implements EntryPoint {
public FixedWidthGrid dataTable = new FixedWidthGrid(200,20);
public FixedWidthFlexTable headerTable = new FixedWidthFlexTable();
public ScrollTable table = new ScrollTable(dataTable, headerTable);
@Override
public void onModuleLoad() {
table.setColumnResizePolicy(ColumnResizePolicy.SINGLE_CELL);
table.setResizePolicy(ResizePolicy.UNCONSTRAINED);
table.setScrollPolicy(ScrollPolicy.BOTH);
table.setSortPolicy(SortPolicy.SINGLE_CELL);
RootPanel.get().add(table);
for (int i = 0; i < 20; i++) {
headerTable.setHTML(0, i, "Header " + i);
}
for (int i = 0; i < 200; i++) {
for (int j = 0; j < 20; j++) {
final int row = i;
final int column = j;
dataTable.setHTML(row, column, "Cell " + row + ":" + column);
}
}
table.redraw();
}
}
这个问题并不总是被看到。当我们运行上述代码并通过远程桌面使用 Web 应用程序时,有时在应用程序的部署版本中(当我有很多列并且需要水平滚动时),可以看到这一点。已处理数据的分页和排序。
我有以下解决方案作为解决方法:
当我调整标题表的大小时,整体ScrollTable
会正确对齐。但是,如果以编程方式完成,这可能是一个性能问题。如果我们导航到其他浏览器选项卡并返回,则看不到问题。
附加信息:
- 我尝试使用 GWT css for
ScrollTable
widget 并使用我的自定义 CSS 运行上述代码。 DeferredCommand
重绘之前试过用ScrollTable
。上述情况没有产生任何结果。
我的应用程序使用 GWT 2.0.4。