您的位置:首页 > 其它

无限层级的组织机构

2016-01-28 11:16 363 查看
项目中用到的 按照自己的想法做了一个 大家有好的想法来交流一下

项目地址:https://github.com/caoweiaaa/OrganizationLevel

效果图:


层级部分用是自定义一个LinearLayou
可像里面放入TextView,下面是ExpandableListView

LinearLayout中提供一个点击的接口和一个移除点击的位置之后的所有控件

package com.chs.organizationlevel.wedgit;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;

import com.chs.organizationlevel.R;

/**
* 作者:chs on 2015/12/31 15:24
* 邮箱:657083984@qq.com
*/
public class MyLinearLayout extends LinearLayout {
private Context mContext;
private OnItemClickListener onItemClickListener;
public MyLinearLayout(Context context) {
super(context);
mContext = context;
}

public MyLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
}
public interface OnItemClickListener{
void onItemClick(int position);
}

public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
final int count = getChildCount();
for(int i = 0;i<count;i++){
View view = getChildAt(i);
if(i>0){
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT);
layoutParams.setMargins(-40, 0, 0, 0);
view.setLayoutParams(layoutParams);
}
if((count-i)==1){
view.setBackgroundResource(R.mipmap.organization_bg_blue);
}else {
view.setBackgroundResource(R.mipmap.organization_bg_gray);
}
final int finalI = i;
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(count>1&&(count-finalI)!=1){
onItemClickListener.onItemClick(finalI);
}
}
});
}
}
public void removeView(int position){
int count = getChildCount();
int x = 0;
for(int i = 0;i<count;i++){
View view = null;
if(i>position){
view = getChildAt(i-x);
removeView(view);
x++;
}
}
}
}


数据是后台给的一个json ,项目中可以让后台给传这种格式的json 无限极扩展
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: