Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在GWT 2.4 DataGrid中选定的行部分被遮挡?_Gwt_Datagrid - Fatal编程技术网

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

为什么在GWT 2.4 DataGrid中选定的行部分被遮挡?,gwt,datagrid,Gwt,Datagrid,使用键盘在DataGrid页面上向下滚动时,可见范围内的最后一个可见项(如果部分被遮挡)在被选中时不会完全可见。用鼠标选择行时似乎也会发生同样的情况。该行变得足够清晰,可以完全显示屏幕截图中显示的数字列值,但图像仍部分模糊。同样的事情在没有任何页脚可见的情况下发生,因此页脚遮挡行似乎不是这里的问题。此外,当选择第一个可见项时,行为是相同的-只有编号值变得完全可见 这是一个小问题,但因为在我的例子中,DataGrid主要是使用键盘浏览的,所以它对可用性有很大的影响。那么-有什么想法可以做什么,以

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

这是一个小问题,但因为在我的例子中,DataGrid主要是使用键盘浏览的,所以它对可用性有很大的影响。那么-有什么想法可以做什么,以确保全行可见性时,它被选中


非常感谢。

如下扩展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();
}

按如下方式扩展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();
}

嗯,看起来行为取决于选择了哪一列,哦。如果我点击图像单元格来聚焦网格,那么滚动的效果和预期的差不多。我想知道是否有可能强制图像单元具有焦点,而不管焦点被赋予哪个单元?还有一些其他可用性的东西,比如当向下滚动并选择最后一个项时,小部件向下滚动,以便选定的项目位于中间。我想禁用这种自动滚动,因为这种方式感觉有点“神经质”。嗯,似乎行为取决于选择了哪个列,哦。如果我点击图像单元格来聚焦网格,那么滚动的效果和预期的差不多。我想知道是否有可能强制图像单元具有焦点,而不管焦点被赋予哪个单元?还有一些其他可用性的东西,比如当向下滚动并选择最后一个项时,小部件向下滚动,以便选定的项目位于中间。我想禁用这种自动滚动,因为这样感觉有点“神经质”。