无限层级的组织机构
来源:互联网 发布:淘宝开店理论知识 编辑:程序博客网 时间:2024/04/29 08:35
项目中用到的 按照自己的想法做了一个 大家有好的想法来交流一下
项目地址: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 无限极扩展
0 0
- 无限层级的组织机构
- 组织机构层级关系设计优化
- JS实现无限层级的树状的算法
- 发布一个基于jquery的无限层级下拉控件
- AndroidTreeView——无限层级的Android树视图
- 设计及封装无限层级的树状结构
- 数据库绑定TreeView,无限层级
- 无限层级且乱序的树形结构数据的整理,利用HashMap减少遍历次数
- java、js中实现无限层级的树形结构(类似递归)
- Android打造一个高性能无限层级显示的树形控件(Android树形控件)
- Java、JS中实现无限层级的树形结构(类似递归)
- JQuery递归解析无限层级JSON对象的所有key和value
- TreeView绑定无限层级关系类
- 不用递归,C#实现无限层级树
- 组织机构中校验码的计算方法
- oracle统计(当前层级以及所有下级组织机构登录次数总和)
- Java编程:将具有父子关系的数据库表数据转换为树形结构,支持无限层级
- 得到组织机构的上下级的数据
- 建造者模式
- 安装VC6问题----字体font空
- 中间件系列(一)——浅谈中间件原理及优势
- DES加密的C语言实现
- 摩斯代码转换
- 无限层级的组织机构
- linux下redmine安装部署
- c++如何批量修改文件后缀名
- iOS webp支持
- Android 第三天(上午)
- 分析自定义view的实现过程-实现雪花飞舞效果
- Robi改造计划RTP--完成12月和1月计划
- Service (在Service中注册BroadcastReceiver)
- 【python】 身份认证小程序