想看详情 链接如下: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());
}
}