Gwt 如何避免在可视范围发生变化时单元格列表/表格自动滚动到所选项目

Gwt 如何避免在可视范围发生变化时单元格列表/表格自动滚动到所选项目,gwt,gwt-celltable,Gwt,Gwt Celltable,我使用CellList showcase示例()实现了一个具有无限滚动功能的自定义CellTable。但是,我在CellList/Table中发现了一个在本例中不受欢迎的功能:单击某个项目后更改可见范围将导致列表/表格自动滚动到所选项目 您可以尝试上面的showcase示例来查看完全相同的行为。当没有选择任何项目时,无限滚动工作正常,但是当您单击某个项目并滚动它时,当范围更改时,它将始终跳回选定的项目 我还发现,只有当焦点仍然在项目上时,才会发生这种情况,也就是说,如果您选择一个项目,然后单击其

我使用CellList showcase示例()实现了一个具有无限滚动功能的自定义CellTable。但是,我在CellList/Table中发现了一个在本例中不受欢迎的功能:单击某个项目后更改可见范围将导致列表/表格自动滚动到所选项目

您可以尝试上面的showcase示例来查看完全相同的行为。当没有选择任何项目时,无限滚动工作正常,但是当您单击某个项目并滚动它时,当范围更改时,它将始终跳回选定的项目

我还发现,只有当焦点仍然在项目上时,才会发生这种情况,也就是说,如果您选择一个项目,然后单击其他地方以失去焦点,这种情况就不会发生


我一直在钻研GWT代码,试图找出如何禁用此功能,但没有成功。以前有人处理过这种情况吗?

作为一种简单的解决方法,您可以对某个元素调用
focus()
,以从项目中移除焦点(而不移除所选内容)

在showcase示例中,在ShowMorePagerPanel中添加例如

scrollable.getElement().focus();

onScroll(ScrollEvent)
方法的开始时。

我遇到了同样的问题,无法得到Chris的答案来解决它,但以下解决方案对我有效:

onScroll(ScrollEvent事件)
方法中,假设您的表是扩展AbstractHasData的某个对象的实例,则添加一行类似于以下内容

yourTable.setFocus(false);

这确实是一个让它工作的快速方法,thx!但是,我仍然认为如果我们可以简单地禁用该行为会更好。这很奇怪:我的客户抱怨没有您刚才描述的行为,我无法让我的celltable在刷新时滚动到所选条目:(另外,showcase示例对我来说并没有跳回。他们可能已经修复了它。@törzsmókus刚刚用Chrome 27尝试了showcase,但问题仍然存在。例如,当焦点集中在某个编辑文本框上时,它也不会发生。