Android 仿QQ好友列表功能实现
ExpandableListview
在垂直滚动展示两级列表的的视图。这与ListView不同,它有组对象和子对象,通过点击组对象来单制度展开子对象的内容,它的适配器跟普通的ListView不一样,需要继承BaseExpandableListAdapter ,都是用来给View提供数据,展示布局。
ExpandableListView是Android中可以实现下拉ListView的一个控件,是ListView的子类。
老规矩,先来看下效果图:
就是这么 一个效果,有兴趣的话就往下看把
1.先来看下布局,没有添加任何属性
<ExpandableListView
android:id="@+id/mElistview"android:layout_width="match_parent"android:layout_height="wrap_content"/>
2.随便模拟了几个数据
public String[] titleStrings = {"女朋友", "女神", "基友", "小弟"};public String[][] nameStrings = {{"苍井空", "波多野结衣", "小泽玛莉亚", "龙泽罗拉"},{"鹿晗", "李易峰", "吴亦凡", "王俊凯"},{"张先生", "刘先生", "李先生", "杜先生", "小弟弟"},{"奥巴驴", "小学僧", "儿童劫", "托儿索"}};
3.初始化数据源
/*** 初始化数据源*/private void initList() {List<TitleInfo> mList = new ArrayList<>();for (int i = 0; i < titleStrings.length; i++) {//创建组对象TitleInfo info= new TitleInfo();//循环添加组的标题名info.setTitle(titleStrings[i]);//创建子对象数据源List<ContentInfo> list = new ArrayList<>();for (int j = 0; j < nameStrings.length; j++) {//创建子对象ContentInfo info2 = new ContentInfo();//添加用户名或者头像info2.setName(nameStrings[i][j]);//将子对象添加到数据源list.add(info2);}//将子对象数据源复制给组对象info.setInfo(list);//将组对象添加到总数据源中mList.add(info);}}
4.因为这是一个二级列表,所以它需要一个组对象的Bean和子对象的Bean,简洁说下参数
TitleInfo:private String title;private List<ContentInfo> info;ContentInfo:public String name; //名称private String qianming;//签名private String icon; //头像
5.写一个适配器 extens BaseExpandableListAdapter,他会返回很多方法,我已经在代码中都注释了
6.适配器里面有两个xml文件,我把它们分为组布局和子布局
7.MainActivity设置适配器就可以展示基本的效果了
8.我模拟了当点击一个组对象关闭其他组对象列表的功能,在工具类EListViewUtils.java文件中,通过调用适配器中的onGroupExpanded()方法来获取点击组对象的位置
9.对于处理item的点击事件,还要设置监听器,常用的有这么几个类
- setOnChildClickListener
- setOnGroupClickListener
- setOnGroupCollapseListener
- setOnGroupExpandListener
通过方法我们就会知道功能分别是击子选项、单击分组项、分组合并、分组展开的监听器。
代码就不贴了,太多,我已经给每一行添加过注释
项目Github地址
Android 仿QQ好友列表功能实现相关推荐
- android 仿qq好友列表分组效果及联系人分组效果
历史记录仿QQ好友列表的动态效果 以及联系人的分组效果 QQ朋友分组的功能做的不错,大家都很认可,那么到底他的分组并且滑动的时候,标题能停留在顶部是如何实现的呢?今天从网上搜索了一下资料,自己运行了 ...
- android的实现关注好友功能,android仿微信好友列表功能
android studio实现微信好友列表功能,注意有一个jar包我没有放上来,请大家到MainActivity中的那个网址里面下载即可,然后把pinyin4j-2.5.0.jar复制粘贴到项目的a ...
- Android仿QQ好友列表分组实现增删改及持久化
Android自带的控件ExpandableListView实现了分组列表功能,本案例在此基础上进行优化,为此控件添加增删改分组及子项的功能,以及列表数据的持久化. Demo实现效果: Dem ...
- html仿qq最小化怎么实现,JS仿QQ好友列表展开、收缩功能(第一篇)
JS仿QQ好友列表展开.收缩功能(第一篇) 发布时间:2020-10-17 14:20:03 来源:脚本之家 阅读:96 作者:erdouzhang 效果图如下所示: html: 我的好友 张三 李四 ...
- android 仿qq好友动态,Android UI仿QQ好友列表分组悬浮效果
本文实例为大家分享了Android UI仿QQ好友列表分组悬浮效果的具体代码,供大家参考,具体内容如下 楼主是在平板上測试的.图片略微有点大,大家看看效果就好 接下来贴源代码: PinnedHeade ...
- qq列表展开多个html代码,JS仿QQ好友列表展开、收缩功能(第二篇)
在上篇的基础上继续完善,点击一个li元素,其他li元素上的类名清除掉. 效果图如下所示: js: window.onload = function(){ var list = document.get ...
- android 实现QQ好友列表(扩展listview:ExpandableListView)
在某些android开发群里,看到有些新手问怎么实现QQ好友列表,其实网上一搜挺多的.接触Android,也才一年的时间,大部分时间花在工作上(解bug...),界面上开发很少参与.自己维护的系统应用 ...
- android 实现QQ好友列表
在某些android开发群里,看到有些新手问怎么实现QQ好友列表,其实网上一搜挺多的.接触Android,也才一年的时间,大部分时间花在工作上(解bug...),界面上开发很少参与.自己维护的系统应用 ...
- iOS之仿QQ好友列表展开收缩效果的实现
使用UICollectionView实现 思路 很明显整体它是一个列表,它的分组是一个列表,它里面的好友列表也是一个列表,所以就可以使用组头来设置分组列表,使用cell设置好友列表: 当点击组头的时候 ...
- 仿QQ好友列表,QListWidget!
仿QQ好友列表, 设计逻辑: 设计qqItem类,再添加到widget中: 设计时布局等可以直接在ui中设计:内容设计通过代码实现: qqItem.cpp #include "qqitem. ...
最新文章
- ios 工具大全,最全框架
- tcp/ip 协议栈Linux源码分析一 IPv4分片报文重组分析一
- __str__的用法
- Debug Tensorflow: yolo模型检测框位置正确但类别不正确
- java并发包消息队列
- 【caffe-MATLAB】自己编译faster-rcnn的MATLAB版本
- DAVINCI开发原理之三----达芬奇编解码引擎Codec Engine(CE)
- Responsive Web Design
- 2007 Microsoft Office 加载项:Microsoft Save as PDF 或 XPS
- wps2019怎么调整字间距_wps2019表格和文字间距太大怎么调整?
- 422串口线互连的接法
- 2022年化肥行业发展趋势
- 我的世界中国版服务器家园系统,《我的世界》中国版“暑期更新”上线 家园系统休闲玩法亮点...
- Python中的PV操作
- 他把互联网“存”了起来!
- 个人微信公众号——定位策略
- 部署本地thinkphp6(iis+php7)
- 0pyqt获取textEdit控件的文本
- mysql 事件及定时器
- Translatium for Mac(Google在线翻译工具)的使用说明
热门文章
- 微信分享appID注册一次后即绑定该应用?
- 汶川大地震引起最近全国人民心理一定程度的恐慌问题
- 魔界/指环王三部曲(加长版)在线观看免费bt下载
- 【Leetcode刷题Python】739. 每日温度
- Windows10系统无法更改默认浏览器等默认设置
- 做读书笔记好用的软件分享
- 电脑族:常点眼药水,还得干眼症?
- mysql resource_MySQL - Resource temporarily unavailable问题处理
- SpringBoot 使用freemarker 处理文档,找不到文件位置(报错:basePackagePath=““ /* relatively to resourceLoaderClass pkg)
- 笔记本开热点手机一直显示正在获取ip