为什么选中的行在GWT 2.4 DataGrid中部分遮挡?

时间:2011-12-01 10:51:39

标签: gwt datagrid

使用键盘在DataGrid页面上向下滚动时,可见范围上的最后一个可见项(如果它被部分遮挡)在选中时不会完全可见。使用鼠标选择行时似乎也会发生同样的情况。该行变得足够可见,可以完全显示数字列值,如屏幕截图所示,但图像保持部分模糊。同样的事情发生在没有任何页脚可见的情况下,因此页脚遮挡行似乎不是问题。此外,选择第一个可见项时的行为相同 - 只有数字值变为完全可见。

DataGrid example

这是一个小问题,但由于我的案例中的DataGrid主要是使用键盘浏览,因此它对可用性的影响非常大。那么 - 任何想法可以做什么来确保选择它时的完整行可见性?

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

如下所示,扩展DataGrid并覆盖setKeyboardSelected(int,boolean,boolean)似乎可以解决问题,但当然是黑客攻击而不是最佳解决方案。

@Override
protected void setKeyboardSelected(int index, boolean selected, boolean stealFocus) {
    if (KeyboardSelectionPolicy.DISABLED == getKeyboardSelectionPolicy() || !isRowWithinBounds(index) || getColumnCount() == 0) {
        return;
    }
    super.setKeyboardSelected(index, selected, stealFocus);
    TableRowElement tr = getRowElement(index);
    tr.scrollIntoView();
}