我正在使用CellList展示示例(http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellList)实现具有无限滚动功能的自定义CellTable。但是,我在CellList / Table中发现了一个在这种情况下不合需要的功能:在单击项目后更改可见范围会导致List / Table自动滚动到所选项目。
您可以尝试上面的展示示例来查看完全相同的行为。当没有选择任何项目时,无限滚动工作正常,但是当您单击某个项目然后滚动它时,它将始终在更改范围时跳回到所选项目。
我还发现只有当焦点仍在项目上时才会发生,也就是说,如果您选择一个项目,然后单击其他地方以失去焦点,则不会发生。
我一直在挖掘GWT代码并试图找出如何禁用此功能但没有成功。有没有人以前处理过这种情况?
答案 0 :(得分:3)
作为一种简单的解决方法,您可以在某个元素上调用focus()
,从项目中移除焦点(不删除选择)。
在展示示例中,在ShowMorePagerPanel
中添加例如
scrollable.getElement().focus();
在onScroll(ScrollEvent event)
方法的开头。
答案 1 :(得分:0)
我遇到了同样的问题,无法得到克里斯的答案来解决,但是以下解决方案对我有用:
在您的onScroll(ScrollEvent event)
方法中,添加类似于以下内容的行,假设yourTable是扩展AbstractHasData的实例的一个实例
yourTable.setFocus(false);