# OpenHarmonyTreeView
**Repository Path**: baijuncheng-open-source/OpenHarmonyTreeView
## Basic Information
- **Project Name**: OpenHarmonyTreeView
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-06-04
- **Last Updated**: 2021-09-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
OpenHarmonyTreeView
====================
### 描述
树视图实现
### 例子
### 特点
+ 1. N级可伸缩树
+ 2. 节点的自定义值、视图、样式
+ 3. 节点的选择模式
+ 4. 动态添加/删除节点
+ 5. 保留屏幕旋转后的状态
### 集成
**1)** 将库作为依赖项添加到项目中
```implementation 'com.gitee.baijuncheng-open-source:openharmonytreeview:1.0.1'```
**2)** 从根元素开始创建树,将不显示`TreeNode.root()`元素,因此不需要设置任何内容。
```java
TreeNode root = TreeNode.root();
```
创建并添加节点(将自定义对象用作构造函数参数)
```java
TreeNode parent = new TreeNode("MyParentNode");
TreeNode child0 = new TreeNode("ChildNode0");
TreeNode child1 = new TreeNode("ChildNode1");
parent.addChildren(child0, child1);
root.addChild(parent);
```
**3)** 将树视图添加到布局
```java
OpenHarmonyTreeView tView = new OpenHarmonyTreeView(this, root);
containerView.addView(tView.getView());
```
最简单但没有样式的树已经准备好了。现在您可以将``父``节点作为树的根节点
**4)** 节点的自定义视图
扩展 TreeNode.BaseNodeViewWholder 并覆盖 createNodeView 方法以准备节点的自定义视图:
```java
public class MyHolder extends TreeNode.BaseNodeViewHolder {
...
@Override
public Component createNodeView(final TreeNode node, IconTreeItem value) {
final LayoutScatter inflater = LayoutScatter.getInstance(context);
final Component view = inflater.parse(ResourceTable.Layout_layout_icon_node, null, false);
final Image iconView = (Image) view.findComponentById(ResourceTable.Id_icon);
iconView.setPixelMap(value.icon);
return view;
}
...
public static class IconTreeItem {
public int icon;
public String text;
}
}
```
**5)**连接视图支架和节点
```java
IconTreeItem nodeItem = new IconTreeItem();
TreeNode child1 = new TreeNode(nodeItem).setViewHolder(new MyHolder(mContext));
```
**6)** 考虑使用
```java
TreeNode.setClickListener(TreeNodeClickListener listener);
OpenHarmonyTreeView.setDefaultViewHolder
OpenHarmonyTreeView.setDefaultNodeClickListener
...
```
有关更多详细信息,请使用示例应用程序作为示例
## License
```
Copyright 2016 bmelnychuk
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```