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_ci25e41f4b71Sopenharmony_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![zh-cn_image_0000001664822257](figures/zh-cn_image_0000001664822257.png)
381