我创建了一个GWT树,我希望它最初显示为开放节点。我们采用标准Tree example from GWT javadocs:
public class TreeExample implements EntryPoint {
public void onModuleLoad() {
// Create a tree with a few items in it.
TreeItem root = new TreeItem("root");
root.addItem("item0");
root.addItem("item1");
root.addItem("item2");
// Add a CheckBox to the tree
TreeItem item = new TreeItem(new CheckBox("item3"));
root.addItem(item);
Tree t = new Tree();
t.addItem(root);
// Add it to the root panel.
RootPanel.get().add(t);
}
}
我希望它最初显示为:
root item0 item1 item2 item3
现在,我认为通过调用TreeItem
来设置我想要打开的setState(true)
的状态非常简单:setState
root.setState(true);
说“设置是否显示此项目的子项“。但是,如果我添加例如
root.setState(true);
到上面的例子,我没有得到预期的效果。我root.setState(false);
或{{1}}时显然没有任何变化:树总是在节点关闭的情况下显示。
我如何获得所需的行为?
答案 0 :(得分:2)
对setState()
的调用取决于对TreeItem
和Tree
的方法调用顺序(如here所述)。
在将所有项目添加到setState(true)
之后以及将根项目添加到TreeItem
后,作为经验法则调用Tree
。