TreeView
介绍:
利用RecyclerView打造的树形控件。
运行效果:
使用说明:
1.build.gradle:
compile 'me.texy.treeview:treeview_lib:1.0.3'
2.实现所有层级的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
.
.
.
如果想添加可选功能,把BaseNodeViewBinder替换成CheckableNodeViewBinder。
3.实现 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;
}
}
}
如果不想创建class,可以在TreeView中实现一个匿名内部类。
4.添加 TreeView
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
已下载
0