# MutiSelectTreeView **Repository Path**: ezreal233/MutiSelectTreeView ## Basic Information - **Project Name**: MutiSelectTreeView - **Description**: Android TreeView, based on RecyclerView package, support node radio \ multiple choice, support for custom node text size, color, height and color of the spacer line, etc.基于 RecyclerView 封装的 AndroidTreeView,支持单选\多选,支持自定义属性 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-03-12 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MutiSelectTreeView 基于 RecyclerView 封装的 Android TreeView,支持单选,多选,支持节点文本字体大小, 字体颜色,分割线高度,分割线颜色等属性的自定义 使用示例1:
在 XML 中声明 AndroidTreeView: 在 JAVA 代码中设置 AndroidTreeView 的属性,最后绑定数据: // findViewById获得控件实例 AndroidTreeView treeView = findViewById(R.id.tree_view); treeView.setNodeIdFormat(NodeIDFormat.LONG); // 声明 bean 中id pid 字段类型,必选 treeView.setMultiSelEnable(false); // 设置关闭多选,默认关闭,可选 // 在单选状态下,通过监听叶子节点单击事件,得到选中的节点 treeView.setTreeNodeClickListener(new OnTreeNodeClickListener() { @Override public void OnLeafNodeClick(TreeNode node, int position) { result.setText(node.getTitle()); } }); // 绑定数据,注意:本行需要写在为 treeView 设置属性之后 // 在本行之后任何 setXXX 都不起作用 treeView.bindData(testData()); ![image](ScreenShots/danxuan.png) 使用示例2:
直接使用 JAVA 代码实例化 AndroidTreeView 实例并添加到布局中 // 通过构造方法实例化 mTreeView = new AndroidTreeView(this); // 设置开启多选,默认为关闭,可选 mTreeView.setMultiSelEnable(true); // 设置当前bean 中 id pid 的类型为 String,必选,默认为 long mTreeView.setNodeIdFormat(NodeIDFormat.STRING); mTreeView.setTitleTextColor("#8a8a8a"); // 设置显示文本字体颜色,可选 mTreeView.setTitleTextSize(16); // 设置显示文本字体大小,可选 mTreeView.setOpenIconRes(R.mipmap.icon_node_open); // 设置节点打开时显示的图标,可选, mTreeView.setCloseIconRes(R.mipmap.icon_node_close);// 设置节点关闭时显示的图标,可选 mTreeView.setLevelPadding(10); // 设置层级缩进大小,可选 mTreeView.setIntervalColor("#aabbaa"); // 设置节点间隔线颜色,可选 mTreeView.setIntervalHeight(0.8f); // 设置节点间隔线高度,可选 // 绑定数据,必须在最后一步调用,否则上述自定义数据将无效 mTreeView.bindData(testData()); // 将 TreeView 添加到 FrameLayout 中显示 layout.addView(mTreeView); btnConfirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mTreeView != null){ // 在多选状态时,通过 getSelected 可以获取当前所选的叶子节点的集合 List selected = mTreeView.getSelected(); StringBuilder builder = new StringBuilder(); for (TreeNode node : selected){ builder.append(node.getTitle()); builder.append(","); } result.setText(builder.toString()); } } }); ![image](ScreenShots/duoxuan.png)