实现的效果类似于QQ好友列表,点击可展开,再次点击收起:
两个Item的布局都很简单,这里就不给布局代码了。值得一提的是,RecyclerView
本身并没有ListView
那样的点击效果,想要类似效果可以为Item的根布局写个Selector,然后设置android:clickable="true"
。
接下来就是两个实体类,也比较简单:
public class ContactGroup {
private String groupName;
private boolean isExpand;
private List<ContactInfo> contacts;
}
public class ContactInfo {
private int imageResId;
private String nickname;
private String description;
}
最后是Adapter
的实现,由于有两个不同Item,我们选择数据源为Object
的容器,然后再根据元素的类型来载入不同的布局,代码如下:
public class ContactsAdapter extends RecyclerView.Adapter<ContactsAdapter.ContactsViewHolder>
implements View.OnClickListener {