想看详情 链接如下:https://download.csdn.net/download/sinat_28238111/10545762 public class MyTestFragment extends Fragment { private View rootView; private ViewGroup containerView; private AndroidTreeView tView; private AndroidTreeView sonView1; private AndroidTreeView sonView2; private AndroidTreeView sonView3; TreeNode root; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { rootView = inflater.inflate(R.layout.fragment_default, null, false); containerView = rootView.findViewById(R.id.container); addData(); return rootView; } private void addData() { root = TreeNode.root(); TreeNode myProfile = new TreeNode(new IconTreeItemHolder.IconTreeItem(R.string.ic_person, "领导班子")).setViewHolder(new ProfileHolder(getActivity())); TreeNode bruce = new TreeNode(new IconTreeItemHolder.IconTreeItem(R.string.ic_person, "机关科室")).setViewHolder(new ProfileHolder(getActivity())); TreeNode clark = new TreeNode(new IconTreeItemHolder.IconTreeItem(R.string.ic_person, "村居")).setViewHolder(new ProfileHolder(getActivity())); TreeNode barry = new TreeNode(new IconTreeItemHolder.IconTreeItem(R.string.ic_person, "驻街单位")).setViewHolder(new ProfileHolder(getActivity())); addProfileData(myProfile); addJiGuanData(bruce); addCunjuData(clark); addhelpData(barry); /** * 用来监听每一个TreeNode 点击一个TreeNode 其它展开的TreeNode 将关闭 */ myProfile.setClickListener(nodeClickListener); bruce.setClickListener(nodeClickListener); clark.setClickListener(nodeClickListener); barry.setClickListener(nodeClickListener); root.addChildren(myProfile, bruce, clark, barry); tView = new AndroidTreeView(getActivity(), root); tView.setDefaultAnimation(false); tView.setDefaultContainerStyle(R.style.TreeNodeStyleDivided, true); containerView.addView(tView.getView()); } private TreeNode.TreeNodeClickListener nodeClickListener = new TreeNode.TreeNodeClickListener() { @Override public void onClick(TreeNode node, Object value) { IconTreeItemHolder.IconTreeItem item = (IconTreeItemHolder.IconTreeItem) value; for (TreeNode n : root.getChildren()) { if (n.equals(node)) { System.out.println("" + item.text); } else { tView.collapseNode(n);//关闭已展开的TreeNode } } } }; /** * 领导 */ private void addProfileData(TreeNode profile) { Collection collection = new ArrayList(); for (int i = 0; i < 5; i++) { TreeNode socialNetworks = new TreeNode(new IconTreeItemHolder.IconTreeItem(R.string.ic_people,"附件为")).setViewHolder(new HeaderHolder(getActivity())); collection.add(socialNetworks); } profile.addChildren(collection); } /** * 机关科室 * * @param bruce */ private void addJiGuanData(TreeNode bruce) { Collection collection = new ArrayList(); final TreeNode root = TreeNode.root();//第一步 关闭子结构 for (int i = 0; i < 5; i++) { TreeNode keshiTreeNode = new TreeNode(new IconTreeItemHolder.IconTreeItem(R.string.ic_people, "文件访问")).setViewHolder(new HeaderHolder(getActivity())); keshiTreeNode.setClickListener(new TreeNode.TreeNodeClickListener() { @Override public void onClick(TreeNode node, Object value) { IconTreeItemHolder.IconTreeItem item = (IconTreeItemHolder.IconTreeItem) value; for (TreeNode n : root.getChildren()) { if (n.equals(node)) { System.out.println("" + item.text); } else { sonView1.collapseNode(n);//第三步关 闭已展开的TreeNode(子列表) } } } }); for (int a = 0; a < 6; a++) { final TreeNode lake = new TreeNode(new PlaceHolderHolder.PlaceItem("姐夫")).setViewHolder(new PlaceHolderHolder(getActivity())); keshiTreeNode.addChildren(lake); } collection.add(keshiTreeNode); } //第二步 关闭子结构 root.addChildren(collection); sonView1 = new AndroidTreeView(getActivity(), root); sonView1.setDefaultAnimation(false); sonView1.setDefaultContainerStyle(R.style.TreeNodeStyleDivided, true); bruce.addChildren(collection); } /** * 村居 * * @param clark */ private void addCunjuData(TreeNode clark) { Collection collection = new ArrayList(); final TreeNode root = TreeNode.root();//第一步 关闭子结构 for (int i = 0; i < 5; i++) { TreeNode keshiTreeNode = new TreeNode(new IconTreeItemHolder.IconTreeItem(R.string.ic_people, "文件访问")).setViewHolder(new HeaderHolder(getActivity())); keshiTreeNode.setClickListener(new TreeNode.TreeNodeClickListener() { @Override public void onClick(TreeNode node, Object value) { IconTreeItemHolder.IconTreeItem item = (IconTreeItemHolder.IconTreeItem) value; for (TreeNode n : root.getChildren()) { if (n.equals(node)) { System.out.println("" + item.text); } else { sonView2.collapseNode(n);//第三步关 闭已展开的TreeNode(子列表) } } } }); for (int a = 0; a < 6; a++) { final TreeNode lake = new TreeNode(new PlaceHolderHolder.PlaceItem("姐夫")).setViewHolder(new PlaceHolderHolder(getActivity())); keshiTreeNode.addChildren(lake); } collection.add(keshiTreeNode); } //第二步 关闭子结构 root.addChildren(collection); sonView2 = new AndroidTreeView(getActivity(), root); sonView2.setDefaultAnimation(false); sonView2.setDefaultContainerStyle(R.style.TreeNodeStyleDivided, true); clark.addChildren(collection); } /** * 外协单位 * * @param barry */ private void addhelpData(TreeNode barry) { Collection collection = new ArrayList(); final TreeNode root = TreeNode.root();//第一步 关闭子结构 for (int i = 0; i < 5; i++) { TreeNode keshiTreeNode = new TreeNode(new IconTreeItemHolder.IconTreeItem(R.string.ic_people, "文件访问")).setViewHolder(new HeaderHolder(getActivity())); keshiTreeNode.setClickListener(new TreeNode.TreeNodeClickListener() { @Override public void onClick(TreeNode node, Object value) { IconTreeItemHolder.IconTreeItem item = (IconTreeItemHolder.IconTreeItem) value; for (TreeNode n : root.getChildren()) { if (n.equals(node)) { System.out.println("" + item.text); } else { sonView3.collapseNode(n);//第三步 关闭已展开的TreeNode(子列表) } } } }); for (int a = 0; a < 6; a++) { final TreeNode lake = new TreeNode(new PlaceHolderHolder.PlaceItem("姐夫")).setViewHolder(new PlaceHolderHolder(getActivity())); keshiTreeNode.addChildren(lake); } collection.add(keshiTreeNode); } //第二步 关闭子结构 root.addChildren(collection); sonView3 = new AndroidTreeView(getActivity(), root); sonView3.setDefaultAnimation(false); sonView3.setDefaultContainerStyle(R.style.TreeNodeStyleDivided, true); barry.addChildren(collection); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("tState", tView.getSaveState()); } }
AndroidTreeView中的列表树形展示 点击弹出树形结构中的某个列表并关闭已经打开的列表
最新推荐文章于 2024-08-16 09:22:08 发布