最近自己想捣鼓个社交类的app,所以想了解一下QQ列表的实现。对于这样的展开效果,我们很容易想到使用ExpandableListView类,当然我也是,但是我在网上看到有人用ListView套用listView的方法,本着学习的态度,我去研究了一下。思路明确,就是在ListView中的Item布局类再放一个ListView,然后通过对分组栏目的点击效果进行判别,分别展示和隐藏子ListView,实现该效果。
效果图如下:
思路就不说了,和ListView是一样的,都是两个控件的套用,代码也简单,相信都可以看得懂,直接上代码。
这里需要两个实体类:Group和GroupItem,分别用于存分组的信息以及其组员的信息。
package henry.com.friendlist.bean;
import java.util.List;
/**
* Date: 2016/10/25. 14:46
* Creator: henry
* Email: heneymark@gmail.com
* Description:分组
*/
public class Group {
//分组名称
private String mGroupName;
//分组项目
private List<GroupItem> mGroupItems;
public Group(String GroupName, List<GroupItem> GroupItems) {
this.mGroupName = GroupName;
this.mGroupItems = GroupItems;
}
public String getGroupName() {
return mGroupName;
}
public void setGroupName(String mGroupName) {
this.mGroupName = mGroupName;
}
public List<GroupItem> getGroupItems() {
return mGroupItems;
}
public void setGroupItems(List<GroupItem> mItems) {
this.mGroupItems = mItems;
}
@Override
public String toString() {
String string = "GroupName=" + mGroupName + ";GroupItem=" + mGroupItems.toString();
return string;
}
}
package henry.com.friendlist.bean;
/**
* Date: 2016/10/25. 14:47
* Creator: henry
* Email: heneymark@gmail.com
* Description: 组员描述
*/
public class GroupItem {
private String Title;
private String Content;
public GroupItem(String mTitle, String mContent) {
this.Title = mTitle;
this.Content = mContent;
}
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
public String getContent() {
return Content;
}