1e41f4b71Sopenharmony_ci# TreeView 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ci树视图作为一种分层显示的列表,适合显示嵌套结构。拥有父列表项和子列表项,可展开或折叠。 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci用于效率型应用,如备忘录、电子邮件、图库中的侧边导航栏中。 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci> **说明:** 11e41f4b71Sopenharmony_ci> 12e41f4b71Sopenharmony_ci> 该组件从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci## 导入模块 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci``` 18e41f4b71Sopenharmony_ciimport { TreeView } from "@kit.ArkUI" 19e41f4b71Sopenharmony_ci``` 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_ci## 子组件 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci无 25e41f4b71Sopenharmony_ci 26e41f4b71Sopenharmony_ci## 属性 27e41f4b71Sopenharmony_ci不支持[通用属性](ts-universal-attributes-size.md)。 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci## TreeView 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ciTreeView({ treeController: TreeController }) 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci**装饰器类型:**\@Component 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci 40e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 41e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 42e41f4b71Sopenharmony_ci| treeController | [TreeController](#treecontroller) | 是 | 树视图节点信息。 | 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci## TreeController 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci树视图组件的控制器,可以将此对象绑定至树视图组件,然后通过它控制树的节点信息,同一个控制器不可以控制多个树视图组件。 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 50e41f4b71Sopenharmony_ci 51e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 52e41f4b71Sopenharmony_ci 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ci### addNode 55e41f4b71Sopenharmony_ci 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ciaddNode(nodeParam?: NodeParam): TreeController 58e41f4b71Sopenharmony_ci 59e41f4b71Sopenharmony_ci点击某个节点后,调用该方法可以触发新增孩子节点。 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 62e41f4b71Sopenharmony_ci 63e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci 66e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 67e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 68e41f4b71Sopenharmony_ci| nodeParam | [NodeParam](#nodeparam) | 否 | 节点信息。 | 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci**返回值:** 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci| 类型 | 说明 | 73e41f4b71Sopenharmony_ci| --------------------------------- | -------------------- | 74e41f4b71Sopenharmony_ci| [TreeController](#treecontroller) | 树视图组件的控制器。 | 75e41f4b71Sopenharmony_ci 76e41f4b71Sopenharmony_ci### removeNode 77e41f4b71Sopenharmony_ci 78e41f4b71Sopenharmony_ciremoveNode(): void 79e41f4b71Sopenharmony_ci 80e41f4b71Sopenharmony_ci点击某个节点后,调用该方法可以触发删除该节点。 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci 87e41f4b71Sopenharmony_ci### modifyNode 88e41f4b71Sopenharmony_ci 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_cimodifyNode(): void 91e41f4b71Sopenharmony_ci 92e41f4b71Sopenharmony_ci点击某个节点后,调用该方法可以触发修改该节点。 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 95e41f4b71Sopenharmony_ci 96e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ci 99e41f4b71Sopenharmony_ci### buildDone 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_cibuildDone(): void 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci建立树视图。节点增加完毕后,必须调用该方法,触发树信息的保存。 104e41f4b71Sopenharmony_ci 105e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 106e41f4b71Sopenharmony_ci 107e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 108e41f4b71Sopenharmony_ci 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci### refreshNode 111e41f4b71Sopenharmony_ci 112e41f4b71Sopenharmony_cirefreshNode(parentId: number, parentSubTitle: ResourceStr, currentSubtitle: ResourceStr): void 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ci更新树视图。调用该方法,更新当前节点的信息。 115e41f4b71Sopenharmony_ci 116e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 117e41f4b71Sopenharmony_ci 118e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 119e41f4b71Sopenharmony_ci 120e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 121e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 122e41f4b71Sopenharmony_ci| parentId | number | 是 | 父节点Id。 | 123e41f4b71Sopenharmony_ci| parentSubTitle | [ResourceStr](ts-types.md#resourcestr) | 是 | 父节点副文本。 | 124e41f4b71Sopenharmony_ci| currentSubtitle | [ResourceStr](ts-types.md#resourcestr) | 是 | 当前节点副文本。 | 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ci## NodeParam 127e41f4b71Sopenharmony_ci 128e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 133e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 134e41f4b71Sopenharmony_ci| parentNodeId | number | 否 | 父节点。 | 135e41f4b71Sopenharmony_ci| currentNodeId | number | 否 | 当前子节点。 | 136e41f4b71Sopenharmony_ci| isFolder | boolean | 否 | 是否是目录。默认值:false。true:是目录,false:不是目录。 | 137e41f4b71Sopenharmony_ci| icon | [ResourceStr](ts-types.md#resourcestr) | 否 | 图标。 | 138e41f4b71Sopenharmony_ci| selectedIcon | [ResourceStr](ts-types.md#resourcestr) | 否 | 选中图标。 | 139e41f4b71Sopenharmony_ci| editIcon | [ResourceStr](ts-types.md#resourcestr) | 否 | 编辑图标。 | 140e41f4b71Sopenharmony_ci| primaryTitle | [ResourceStr](ts-types.md#resourcestr) | 否 | 主标题。 | 141e41f4b71Sopenharmony_ci| secondaryTitle | [ResourceStr](ts-types.md#resourcestr) | 否 | 副标题。 | 142e41f4b71Sopenharmony_ci| container | () => void | 否 | 绑定在节点上的右键子组件,子组件由@Builder修饰。 | 143e41f4b71Sopenharmony_ci 144e41f4b71Sopenharmony_ci 145e41f4b71Sopenharmony_ci## TreeListenerManager 146e41f4b71Sopenharmony_ci 147e41f4b71Sopenharmony_ci树视图组件的监听器,可以将此对象绑定至树视图组件,然后通过它监听树的节点的变化,同一个监听器不可以控制多个树视图组件。 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ci 150e41f4b71Sopenharmony_ci### getInstance 151e41f4b71Sopenharmony_ci 152e41f4b71Sopenharmony_cistatic getInstance(): TreeListenerManager 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci获取监听管理器单例对象。 155e41f4b71Sopenharmony_ci 156e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 157e41f4b71Sopenharmony_ci 158e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 159e41f4b71Sopenharmony_ci 160e41f4b71Sopenharmony_ci**返回值**: 161e41f4b71Sopenharmony_ci 162e41f4b71Sopenharmony_ci| 类型 | 说明 | 163e41f4b71Sopenharmony_ci| --------------- |------------------| 164e41f4b71Sopenharmony_ci| [TreeListenerManager](#treelistenermanager) | 返回获取到的监听管理器单例对象。 | 165e41f4b71Sopenharmony_ci 166e41f4b71Sopenharmony_ci 167e41f4b71Sopenharmony_ci### getTreeListener 168e41f4b71Sopenharmony_ci 169e41f4b71Sopenharmony_cigetTreeListener(): TreeListener 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_ci获取监听器。 172e41f4b71Sopenharmony_ci 173e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci**返回值**: 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_ci| 类型 | 说明 | 180e41f4b71Sopenharmony_ci| ------------ |------------| 181e41f4b71Sopenharmony_ci| [TreeListener](#treelistener) | 返回获取到的监听器。 | 182e41f4b71Sopenharmony_ci 183e41f4b71Sopenharmony_ci 184e41f4b71Sopenharmony_ci## TreeListener 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_ci树视图组件的监听器,可以将此对象绑定至树视图组件,然后通过它监听树的节点的变化,同一个监听器不可以控制多个树视图组件。 187e41f4b71Sopenharmony_ci 188e41f4b71Sopenharmony_ci 189e41f4b71Sopenharmony_ci### on 190e41f4b71Sopenharmony_ci 191e41f4b71Sopenharmony_cion(type: TreeListenType, callback: (callbackParam: CallbackParam) => void): void; 192e41f4b71Sopenharmony_ci 193e41f4b71Sopenharmony_ci注册监听。 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 196e41f4b71Sopenharmony_ci 197e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 198e41f4b71Sopenharmony_ci 199e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 200e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 201e41f4b71Sopenharmony_ci| type | [TreeListenType](#treelistentype) | 是 | 监听类型。 | 202e41f4b71Sopenharmony_ci| callback | (callbackParam: [CallbackParam](#callbackparam)) => void | 是 | 节点信息。 | 203e41f4b71Sopenharmony_ci 204e41f4b71Sopenharmony_ci 205e41f4b71Sopenharmony_ci### once 206e41f4b71Sopenharmony_ci 207e41f4b71Sopenharmony_cionce(type: TreeListenType, callback: (callbackParam: CallbackParam) => void): void; 208e41f4b71Sopenharmony_ci 209e41f4b71Sopenharmony_ci注册一次监听。 210e41f4b71Sopenharmony_ci 211e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 212e41f4b71Sopenharmony_ci 213e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 214e41f4b71Sopenharmony_ci 215e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 216e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 217e41f4b71Sopenharmony_ci| type | [TreeListenType](#treelistentype) | 是 | 监听类型。 | 218e41f4b71Sopenharmony_ci| callback | (callbackParam: [CallbackParam](#callbackparam)) => void | 是 | 节点信息。 | 219e41f4b71Sopenharmony_ci 220e41f4b71Sopenharmony_ci 221e41f4b71Sopenharmony_ci### off 222e41f4b71Sopenharmony_ci 223e41f4b71Sopenharmony_ci 224e41f4b71Sopenharmony_cioff(type: TreeListenType, callback?: (callbackParam: CallbackParam) => void): void; 225e41f4b71Sopenharmony_ci 226e41f4b71Sopenharmony_ci取消监听。 227e41f4b71Sopenharmony_ci 228e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 229e41f4b71Sopenharmony_ci 230e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 231e41f4b71Sopenharmony_ci 232e41f4b71Sopenharmony_ci 233e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 234e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 235e41f4b71Sopenharmony_ci| type | [TreeListenType](#treelistentype) | 是 | 监听类型。 | 236e41f4b71Sopenharmony_ci| callback | (callbackParam: [CallbackParam](#callbackparam)) => void | 否 | 节点信息。 | 237e41f4b71Sopenharmony_ci 238e41f4b71Sopenharmony_ci## TreeListenType 239e41f4b71Sopenharmony_ci 240e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 241e41f4b71Sopenharmony_ci 242e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 243e41f4b71Sopenharmony_ci 244e41f4b71Sopenharmony_ci| 名称 | 说明 | 245e41f4b71Sopenharmony_ci| -------- | -------- | 246e41f4b71Sopenharmony_ci| NODE_CLICK | 监听节点点击事件。 | 247e41f4b71Sopenharmony_ci| NODE_ADD | 监听节点增加事件。 | 248e41f4b71Sopenharmony_ci| NODE_DELETE | 监听节点删除事件。 | 249e41f4b71Sopenharmony_ci| NODE_MODIFY | 监听节点修改事件。 | 250e41f4b71Sopenharmony_ci| NODE_MOVE | 监听节点移动事件。 | 251e41f4b71Sopenharmony_ci 252e41f4b71Sopenharmony_ci## CallbackParam 253e41f4b71Sopenharmony_ci 254e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 255e41f4b71Sopenharmony_ci 256e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 257e41f4b71Sopenharmony_ci 258e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 259e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 260e41f4b71Sopenharmony_ci| currentNodeId | number | 是 | 当前子节点。 | 261e41f4b71Sopenharmony_ci| parentNodeId | number | 否 | 父节点。 | 262e41f4b71Sopenharmony_ci| childIndex | number | 否 | 子索引。 | 263e41f4b71Sopenharmony_ci 264e41f4b71Sopenharmony_ci## 事件 265e41f4b71Sopenharmony_ci不支持[通用事件](ts-universal-events-click.md)。 266e41f4b71Sopenharmony_ci 267e41f4b71Sopenharmony_ci## 示例 268e41f4b71Sopenharmony_ci 269e41f4b71Sopenharmony_ci```ts 270e41f4b71Sopenharmony_ciimport { TreeController, TreeListener, TreeListenerManager, TreeListenType, NodeParam, TreeView, CallbackParam } from '@kit.ArkUI' 271e41f4b71Sopenharmony_ci 272e41f4b71Sopenharmony_ci@Entry 273e41f4b71Sopenharmony_ci@Component 274e41f4b71Sopenharmony_cistruct TreeViewDemo { 275e41f4b71Sopenharmony_ci private treeController: TreeController = new TreeController(); 276e41f4b71Sopenharmony_ci private treeListener: TreeListener = TreeListenerManager.getInstance().getTreeListener(); 277e41f4b71Sopenharmony_ci @State clickNodeId: number = 0; 278e41f4b71Sopenharmony_ci 279e41f4b71Sopenharmony_ci aboutToDisappear(): void { 280e41f4b71Sopenharmony_ci this.treeListener.off(TreeListenType.NODE_CLICK, undefined); 281e41f4b71Sopenharmony_ci this.treeListener.off(TreeListenType.NODE_ADD, undefined); 282e41f4b71Sopenharmony_ci this.treeListener.off(TreeListenType.NODE_DELETE, undefined); 283e41f4b71Sopenharmony_ci this.treeListener.off(TreeListenType.NODE_MOVE, undefined); 284e41f4b71Sopenharmony_ci } 285e41f4b71Sopenharmony_ci 286e41f4b71Sopenharmony_ci @Builder menuBuilder1() { 287e41f4b71Sopenharmony_ci Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { 288e41f4b71Sopenharmony_ci Text('新增').fontSize(16).width(100).height(30).textAlign(TextAlign.Center) 289e41f4b71Sopenharmony_ci .onClick((event: ClickEvent) => { 290e41f4b71Sopenharmony_ci this.treeController.addNode(); 291e41f4b71Sopenharmony_ci }) 292e41f4b71Sopenharmony_ci Divider() 293e41f4b71Sopenharmony_ci Text('删除').fontSize(16).width(100).height(30).textAlign(TextAlign.Center) 294e41f4b71Sopenharmony_ci .onClick((event: ClickEvent) => { 295e41f4b71Sopenharmony_ci this.treeController.removeNode(); 296e41f4b71Sopenharmony_ci }) 297e41f4b71Sopenharmony_ci Divider() 298e41f4b71Sopenharmony_ci Text('重命名').fontSize(16).width(100).height(30).textAlign(TextAlign.Center) 299e41f4b71Sopenharmony_ci .onClick((event: ClickEvent) => { 300e41f4b71Sopenharmony_ci this.treeController.modifyNode(); 301e41f4b71Sopenharmony_ci }) 302e41f4b71Sopenharmony_ci }.width(100).border({width: 1, color: 0x80808a, radius: '16dp'}) 303e41f4b71Sopenharmony_ci } 304e41f4b71Sopenharmony_ci 305e41f4b71Sopenharmony_ci aboutToAppear(): void { 306e41f4b71Sopenharmony_ci this.treeListener.on(TreeListenType.NODE_CLICK, (callbackParam: CallbackParam) => { 307e41f4b71Sopenharmony_ci this.clickNodeId = callbackParam.currentNodeId; 308e41f4b71Sopenharmony_ci }) 309e41f4b71Sopenharmony_ci this.treeListener.on(TreeListenType.NODE_ADD, (callbackParam: CallbackParam) => { 310e41f4b71Sopenharmony_ci this.clickNodeId = callbackParam.currentNodeId; 311e41f4b71Sopenharmony_ci }) 312e41f4b71Sopenharmony_ci this.treeListener.on(TreeListenType.NODE_DELETE, (callbackParam: CallbackParam) => { 313e41f4b71Sopenharmony_ci this.clickNodeId = callbackParam.currentNodeId; 314e41f4b71Sopenharmony_ci }) 315e41f4b71Sopenharmony_ci this.treeListener.once(TreeListenType.NODE_MOVE, (callbackParam: CallbackParam) => { 316e41f4b71Sopenharmony_ci this.clickNodeId = callbackParam.currentNodeId; 317e41f4b71Sopenharmony_ci }) 318e41f4b71Sopenharmony_ci 319e41f4b71Sopenharmony_ci let normalResource: Resource = $r('app.media.ic_public_collect_normal'); 320e41f4b71Sopenharmony_ci let selectedResource: Resource = $r('app.media.ic_public_collect_selected'); 321e41f4b71Sopenharmony_ci let editResource: Resource = $r('app.media.ic_public_collect_edit'); 322e41f4b71Sopenharmony_ci let nodeParam: NodeParam = { parentNodeId:-1, currentNodeId: 1, isFolder: true, icon: normalResource, selectedIcon: selectedResource, 323e41f4b71Sopenharmony_ci editIcon: editResource, primaryTitle: "目录1验证悬浮框自适应效果是否OK", 324e41f4b71Sopenharmony_ci secondaryTitle: "6" }; 325e41f4b71Sopenharmony_ci this.treeController 326e41f4b71Sopenharmony_ci .addNode(nodeParam) 327e41f4b71Sopenharmony_ci .addNode({parentNodeId:1, currentNodeId: 2, isFolder: false, primaryTitle: "项目1_1" }) 328e41f4b71Sopenharmony_ci .addNode({ parentNodeId:-1, currentNodeId: 7, isFolder: true, primaryTitle: "目录2" }) 329e41f4b71Sopenharmony_ci .addNode({ parentNodeId:-1, currentNodeId: 23, isFolder: true, icon: normalResource, selectedIcon: selectedResource, 330e41f4b71Sopenharmony_ci editIcon: editResource, primaryTitle: "目录3" }) 331e41f4b71Sopenharmony_ci .addNode({ parentNodeId:-1, currentNodeId: 24, isFolder: false, primaryTitle: "项目4" }) 332e41f4b71Sopenharmony_ci .addNode({ parentNodeId:-1, currentNodeId: 31, isFolder: true, icon: normalResource, selectedIcon: selectedResource, 333e41f4b71Sopenharmony_ci editIcon: editResource, primaryTitle: "目录5", secondaryTitle: "0" }) 334e41f4b71Sopenharmony_ci .addNode({ parentNodeId:-1, currentNodeId: 32, isFolder: true, icon: normalResource, selectedIcon: selectedResource, 335e41f4b71Sopenharmony_ci editIcon: editResource, primaryTitle: "目录6", secondaryTitle: "0" }) 336e41f4b71Sopenharmony_ci .addNode({ parentNodeId:32, currentNodeId: 35, isFolder: true, icon: normalResource, selectedIcon: selectedResource, 337e41f4b71Sopenharmony_ci editIcon: editResource, primaryTitle: "目录6-1", secondaryTitle: "0" }) 338e41f4b71Sopenharmony_ci .addNode({ parentNodeId:-1, currentNodeId: 33, isFolder: true, icon: normalResource, selectedIcon: selectedResource, 339e41f4b71Sopenharmony_ci editIcon: editResource, primaryTitle: "目录7", secondaryTitle: "0" }) 340e41f4b71Sopenharmony_ci .addNode({ parentNodeId:33, currentNodeId: 34, isFolder: false, primaryTitle: "项目8" }) 341e41f4b71Sopenharmony_ci .addNode({ parentNodeId:-1, currentNodeId: 36, isFolder: false, primaryTitle: "项目9" }) 342e41f4b71Sopenharmony_ci .buildDone(); 343e41f4b71Sopenharmony_ci this.treeController.refreshNode(-1, "父节点", "子节点"); 344e41f4b71Sopenharmony_ci } 345e41f4b71Sopenharmony_ci 346e41f4b71Sopenharmony_ci build() { 347e41f4b71Sopenharmony_ci Column(){ 348e41f4b71Sopenharmony_ci SideBarContainer(SideBarContainerType.Embed) 349e41f4b71Sopenharmony_ci { 350e41f4b71Sopenharmony_ci TreeView({ treeController: this.treeController }) 351e41f4b71Sopenharmony_ci Row() { 352e41f4b71Sopenharmony_ci Divider().vertical(true).strokeWidth(2).color(0x000000).lineCap(LineCapStyle.Round) 353e41f4b71Sopenharmony_ci Column({ space: 30 }) { 354e41f4b71Sopenharmony_ci Text('ClickNodeId=' + this.clickNodeId).fontSize('16fp') 355e41f4b71Sopenharmony_ci Button('Add', { type: ButtonType.Normal, stateEffect: true }) 356e41f4b71Sopenharmony_ci .borderRadius(8).backgroundColor(0x317aff).width(90) 357e41f4b71Sopenharmony_ci .onClick((event: ClickEvent) => { 358e41f4b71Sopenharmony_ci this.treeController.addNode(); 359e41f4b71Sopenharmony_ci }) 360e41f4b71Sopenharmony_ci Button('Modify', { type: ButtonType.Normal, stateEffect: true }) 361e41f4b71Sopenharmony_ci .borderRadius(8).backgroundColor(0x317aff).width(90) 362e41f4b71Sopenharmony_ci .onClick((event: ClickEvent) => { 363e41f4b71Sopenharmony_ci this.treeController.modifyNode(); 364e41f4b71Sopenharmony_ci }) 365e41f4b71Sopenharmony_ci Button('Remove', { type: ButtonType.Normal, stateEffect: true }) 366e41f4b71Sopenharmony_ci .borderRadius(8).backgroundColor(0x317aff).width(120) 367e41f4b71Sopenharmony_ci .onClick((event: ClickEvent) => { 368e41f4b71Sopenharmony_ci this.treeController.removeNode(); 369e41f4b71Sopenharmony_ci }) 370e41f4b71Sopenharmony_ci }.height('100%').width('70%').alignItems(HorizontalAlign.Start).margin(10) 371e41f4b71Sopenharmony_ci } 372e41f4b71Sopenharmony_ci } 373e41f4b71Sopenharmony_ci .focusable(true) 374e41f4b71Sopenharmony_ci .showControlButton(false) 375e41f4b71Sopenharmony_ci .showSideBar(true) 376e41f4b71Sopenharmony_ci } 377e41f4b71Sopenharmony_ci }} 378e41f4b71Sopenharmony_ci``` 379e41f4b71Sopenharmony_ci 380e41f4b71Sopenharmony_ci 381