Gwt 树改变位置

Gwt 树改变位置,gwt,tree,onclick,Gwt,Tree,Onclick,我在我的GWT WebApp中添加了一棵树。现在,当你点击一个元素时,整个网站都在向下滚动。这通常意味着我失去了对单击对象的关注,因此我必须移动鼠标并再次单击该项目 当你总是要在一个项目上点击两次时,这是非常烦人的 也许有可能删除此“自动对焦选项”,或者有人有其他想法?GWT 2.5.1有一个新选项来修复滚动到视图的行为。 创建新的树对象调用后 tree.setScrollOnSelectEnabled(false); 禁用选择时的滚动 请记住,在此之后,树将始终设置为(0,0)滚动位置。这意

我在我的GWT WebApp中添加了一棵树。现在,当你点击一个元素时,整个网站都在向下滚动。这通常意味着我失去了对单击对象的关注,因此我必须移动鼠标并再次单击该项目

当你总是要在一个项目上点击两次时,这是非常烦人的


也许有可能删除此“自动对焦选项”,或者有人有其他想法?

GWT 2.5.1有一个新选项来修复滚动到视图的行为。 创建新的树对象调用后

tree.setScrollOnSelectEnabled(false);
禁用选择时的滚动


请记住,在此之后,树将始终设置为(0,0)滚动位置。这意味着,如果该树碰巧有滚动条,则可能会出现问题(它将滚动到顶部,而不是将焦点放在所选项目上)。

此外,还可以滚动到所选项目,例如,从codebehind创建时:

tree.addItem(treeItem);
treeItem.getElement().scrollIntoView();
虽然在添加之前动态启用autoscroll(SetScrolOnSelectEnabled)和在添加之后禁用autoscroll可能无法按预期工作

upd:当treeitem是启用autoscroll的小部件时出现问题。单击项目两次可滚动树顶。纯文本仍然可以

upd2:在某些IEs中,setScrolOnSelectEnabled(false)没有任何效果,焦点仍然在小部件项单击上跳跃。原因似乎是执行流最终到达了Element.focus(),这导致了不正确的行为(由于不正确的元素?)。它从onSelection开始(moveFocus=true)。如果moveFocus=false,则可以。要禁用此功能,需要在禁用moveFocus的情况下创建自己的树版本,并调用Element.focus()以获取正确的元素


但是!SetScrolOnSelectEnabled(true)正常,第二次单击时不会跳转到项目顶部!因此,解决方法是根据检测到的浏览器启用此设置。

您的项目中有什么?聚焦元素?您可以发布您的物品代码吗?确认该修复程序在GWT2.8中有效(我从2.4->2.8升级了我们)。