AndroidTreeView中的列表树形展示 点击弹出树形结构中的某个列表并关闭已经打开的列表

想看详情 链接如下: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());
    }
}
发布了180 篇原创文章 · 获赞 27 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/sinat_28238111/article/details/81077360