android 仿qq分组
来源:互联网 发布:caffe的数据层 编辑:程序博客网 时间:2024/04/30 07:10
Android 组件中本身带有 ExpandableListView ,类似qq分组。查看源码可看到
ExpandableListView 继承自listView。所以最重要的适配器也和普通的listView差不多。适配器继承自BaseExpandableListAdapter。
和普通的listView用法一样,继承BaseExpandableListAdapter,重写里面方法。
public ExpandListAdapter1(List<FindAccountByOrgResponse.ChildrenBean> list, Context context) { this.list = list; this.context = context; } @Override public void registerDataSetObserver(DataSetObserver dataSetObserver) { } @Override public void unregisterDataSetObserver(DataSetObserver dataSetObserver) { } //分组list大小 @Override public int getGroupCount() { return list.size(); } //分组对应下面的子组list大小 @Override public int getChildrenCount(int i) { return list.get(i).users.size(); } //组对应的item @Override public Object getGroup(int i) { return list.get(i); } //分组对应下面的子租的item @Override public Object getChild(int i, int i1) { return list.get(i).users.get(i1); } //分组对应的item的id @Override public long getGroupId(int i) { return i; } //子组对应的item的id @Override public long getChildId(int i, int i1) { return i1; } @Override public boolean hasStableIds() { return true; } //组对应的listview的getview及点击组关闭组或者打开,isExpanded对应组是否打开 @Override public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { GroupHolder holder = null; if (convertView == null) { holder = new GroupHolder(); convertView = LayoutInflater.from(context).inflate(R.layout.item_group_title, null); holder.title = (TextView) convertView.findViewById(R.id.item_GroupTitle); holder.isExpand = (ImageView) convertView.findViewById(R.id.itemIsExpand); convertView.setTag(holder); } else { holder = (GroupHolder) convertView.getTag(); } if (isExpanded) { holder.isExpand.setImageResource(R.mipmap.openthesymbol2x); } else { holder.isExpand.setImageResource(R.mipmap.closethesymbol2x); } holder.title.setText(list.get(groupPosition).name); return convertView; } //子组对应listview的getView @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { ChildHolder holder; if (convertView == null) { holder = new ChildHolder(); convertView = LayoutInflater.from(context).inflate( R.layout.item_child, null); holder.name = (TextView) convertView.findViewById(R.id.childItemTitle); holder.img = (ImageView) convertView.findViewById(R.id.childItemImg); convertView.setTag(holder); } else { holder = (ChildHolder) convertView.getTag(); } FindAccountByOrgResponse.ChildrenBean.UsersBean cb = list.get(groupPosition).users.get(childPosition); holder.name.setText(cb.name); holder.job.setText(""); Glide.with(context).load(cb.avatar).into(holder.img); return convertView; } @Override public boolean isChildSelectable(int i, int i1) { return true; } @Override public boolean areAllItemsEnabled() { return false; } @Override public boolean isEmpty() { return false; } @Override public void onGroupExpanded(int i) { } @Override public void onGroupCollapsed(int i) { } @Override public long getCombinedChildId(long l, long l1) { return 0; } @Override public long getCombinedGroupId(long l) { return 0; } class GroupHolder { TextView title,more; ImageView isExpand; } class ChildHolder { TextView name,job; ImageView img; }}
在添加适配器的时候比listView多一条,
expandableListView1.setGroupIndicator(null);
是否选择默认的组的打开或关闭的指示器,就是组前面的箭头,可以自定义
0 0
- android 仿qq分组
- Android 高仿QQ 好友分组列表
- Android 高仿QQ 好友分组列表
- android仿qq分组列表效果
- Android 高仿QQ 好友分组列表
- Android仿QQ通讯录分组展示ExpandableListView
- Android 高仿QQ 好友分组列表
- Android仿QQ联系人分组悬停
- Android 仿QQ联系人,分组悬浮,展开停至特定项
- Android 仿QQ好友分组列表、ExpandableListView的使用详解
- Android 仿QQ好友列表分组悬浮PinnedHeaderExpandableListView
- iOS仿QQ分组效果
- android 仿qq好友列表分组效果及联系人分组效果
- 高仿QQ好友分组列表
- 仿QQ分组列表(UITableView)
- 仿QQ好友列表分组折叠效果
- 仿QQ分组折叠菜单ExpandableListView
- Android: listview 分组上滑标题碰撞效果,固定标题效果,仿QQ微信
- Spring AOP三种实现方式
- eclipse---介绍java buildpath 的文章
- win7 GHOST删除桌面上IE图标
- 移动端jquery替换方案zepto.js
- IntelliJ IDEA设置与使用
- android 仿qq分组
- 2017年,不再平凡
- 《C++ Primer》随附代码的使用方法
- hog+SVM行人检测
- greenplum表级优化建议
- Error : Servname not supported for ai_socktype 错误
- const 和 #define区别
- 关于android&java在socket通讯单字节大于127的问题
- RHRL 7安装RAC11.2.0.4----Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/1