树形结构组件 – TreeView

TreeView

高性能和丰富特性的树形结构组件

Captures

There are some gifs from Demo:

  • Select node:

  • Operate all:

特性

  • expandAll/collapseAll
  • expandNode/collapseNode
  • expandLevel/collapseLevel
  • toggleNode
  • deleteNode/addNode
  • selectNode/deselectNode
  • selectAll/deselectAll
  • getAllSelectedNodes

使用

1.Reference the library from your module’s build.gradle:

compile 'me.texy.treeview:treeview_lib:1.0.3'

2.Implement your all level’s BaseNodeViewBinder

Sample:

public class FirstLevelNodeViewBinder extends BaseNodeViewBinder {
  TextView textView;
  public FirstLevelNodeViewBinder(View itemView) { 
    super(itemView);  
    textView = (TextView) itemView.findViewById(R.id.node_name_view)
  }
  
  @Override
  public int getLayoutId() {
    return R.layout.item_first_level;
  }
  
  @Override
  public void bindView(TreeNode treeNode) {
    textView.setText(treeNode.getValue().toString());
  }
}

SecondLevelNodeViewBinder
ThirdLevelNodeViewBinder
.
.
.

If you want add the selectable feature,replace BaseNodeViewBinder with CheckableNodeViewBinder.

3.Implement the BaseNodeViewFactory

Sample:

public class MyNodeViewFactory extends BaseNodeViewFactory {
  @Override
  public BaseNodeViewBinder getNodeViewBinder(View view, int level) {
    switch (level) {
      case 0:
        return new FirstLevelNodeViewBinder(view);
      case 1:
        return new SecondLevelNodeViewBinder(view);
      case 2:
        return new ThirdLevelNodeViewBinder(view);
      default:
        return null;
    }
  }
}

If you do not want to create a class file,just implement a anonymous inner class in TreeView’s constructor

4.Add TreeView to wherever you want

Sample:

TreeNode root = TreeNode.root();
//build the tree as you want
for (int i = 0; i < 5; i++) {
  TreeNode treeNode = new TreeNode(new String("Child " + "No." + i));
  treeNode.setLevel(0);
  root.addChild(treeNode);
}
View treeView = new TreeView(root, context, new MyNodeViewFactory()).getView();
//add to view group where you want

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:树形结构组件 – TreeView