为什么在GWT 2.4 DataGrid中选定的行部分被遮挡?
使用键盘在DataGrid页面上向下滚动时,可见范围内的最后一个可见项(如果部分被遮挡)在被选中时不会完全可见。用鼠标选择行时似乎也会发生同样的情况。该行变得足够清晰,可以完全显示屏幕截图中显示的数字列值,但图像仍部分模糊。同样的事情在没有任何页脚可见的情况下发生,因此页脚遮挡行似乎不是这里的问题。此外,当选择第一个可见项时,行为是相同的-只有编号值变得完全可见 这是一个小问题,但因为在我的例子中,DataGrid主要是使用键盘浏览的,所以它对可用性有很大的影响。那么-有什么想法可以做什么,以确保全行可见性时,它被选中为什么在GWT 2.4 DataGrid中选定的行部分被遮挡?,gwt,datagrid,Gwt,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();
}
嗯,看起来行为取决于选择了哪一列,哦。如果我点击图像单元格来聚焦网格,那么滚动的效果和预期的差不多。我想知道是否有可能强制图像单元具有焦点,而不管焦点被赋予哪个单元?还有一些其他可用性的东西,比如当向下滚动并选择最后一个项时,小部件向下滚动,以便选定的项目位于中间。我想禁用这种自动滚动,因为这种方式感觉有点“神经质”。嗯,似乎行为取决于选择了哪个列,哦。如果我点击图像单元格来聚焦网格,那么滚动的效果和预期的差不多。我想知道是否有可能强制图像单元具有焦点,而不管焦点被赋予哪个单元?还有一些其他可用性的东西,比如当向下滚动并选择最后一个项时,小部件向下滚动,以便选定的项目位于中间。我想禁用这种自动滚动,因为这样感觉有点“神经质”。