我TreeField
现在在黑莓中绘制了一个树形结构。根节点由15个节点组成,每个节点都有对应的子节点,在运行应用程序时,所有节点都是展开的。我只需要扩展一个特定的节点,并将所有其他节点都折叠起来。
我尝试使用 apis 中的以下方法。
myTree.setDefaultExpanded(false);
和
myTree.setExpanded(1, true);
但到目前为止似乎对树没有任何影响。所有节点都在启动应用程序时扩展。
我TreeField
现在在黑莓中绘制了一个树形结构。根节点由15个节点组成,每个节点都有对应的子节点,在运行应用程序时,所有节点都是展开的。我只需要扩展一个特定的节点,并将所有其他节点都折叠起来。
我尝试使用 apis 中的以下方法。
myTree.setDefaultExpanded(false);
和
myTree.setExpanded(1, true);
但到目前为止似乎对树没有任何影响。所有节点都在启动应用程序时扩展。
如果您查看TreeField的文档,您会发现setDefaultExpanded()
必须在添加节点之前调用它,而不仅仅是在它们显示之前:
设置默认扩展
public void setDefaultExpanded(boolean expanded)
为将来的节点分配设置默认扩展状态。
因此,要修改TreeField 示例,您需要执行以下操作:
public TreeFieldDemoScreen()
{
setTitle("Tree Field Demo");
String fieldOne = new String("Parent folder 1");
String fieldTwo = new String("Parent folder 2");
String fieldThree = new String("Sub-folder 1");
String fieldFour = new String("Sub-folder 2");
TreeCallback myCallback = new TreeCallback();
TreeField myTree = new TreeField(myCallback, Field.FOCUSABLE);
myTree.setDefaultExpanded(false);
int node1 = myTree.addChildNode(0, fieldOne);
int node2 = myTree.addChildNode(0, fieldTwo);
int node3 = myTree.addChildNode(node2, fieldThree);
int node4 = myTree.addChildNode(node3, fieldFour);
add(myTree);
}