在GWT树中显示打开的节点
我创建了一个GWT树,我希望它最初显示为打开的节点。让我们以标准为例: 我希望它最初显示为: root item0 item1 item2 item3 对于上面的例子,我没有得到预期的效果。显然,当我执行在GWT树中显示打开的节点,gwt,Gwt,我创建了一个GWT树,我希望它最初显示为打开的节点。让我们以标准为例: 我希望它最初显示为: root item0 item1 item2 item3 对于上面的例子,我没有得到预期的效果。显然,当我执行root.setState(true)时,没有任何变化或根设置状态(false):树始终在其节点关闭的情况下显示 如何获得所需的行为?对setState()的调用取决于对TreeItem和Tree的方法调用顺序(如上所述) 根据经验,在将所有项目添加到树项中之后,以及在将根项目添
root.setState(true)时,没有任何变化代码>或根设置状态(false)代码>:树始终在其节点关闭的情况下显示
如何获得所需的行为?对setState()
的调用取决于对TreeItem
和Tree
的方法调用顺序(如上所述)
根据经验,在将所有项目添加到树项中之后,以及在将根项目添加到树中之后,在发布问题之后,我找到了一种几乎可以完成我想要的事情的方法:我必须调用t.setSelectedItem(项目)
选择根节点下的一个项目,然后调用t.ensureSelectedItemVisible()代码>,它“确保当前所选项目可见,打开其父项并根据需要滚动树”。有没有其他方法可以在不显式选择项的情况下执行此操作?root.setState(true)
对我来说很好(GWT 2.0.4和FF)。你能给我们一些关于版本和浏览器的信息吗?我正在使用GWT2.0.3和Firefox3.6.10。这可能是GWT2.0.3中的一个bug吗?刚刚用2.0.3和FF 3.6.10对它进行了测试,它仍然有效。似乎不是一只虫子。你在新创建的GWT项目中测试了代码吗?我知道了!诀窍是在将root
添加到树之后,即在调用t.addItem(root)之后,必须调用root.setState(true)
代码>。如果你以前做过,它就不起作用了。
root
item0
item1
item2
item3
root.setState(true);