展开收缩
效果展示
核心代码
每一个tem分为head和body。最核心的是要实现点击head,能展开body。而这实现的原理就是,用expandedPosition 记录处于展开状态的item位置, mViewHolder 保存处于展开状态的item, isExpanded 记录当前item是否是展开的。话不多说上代码:
然后具体的布局得采用RelativeLayout,对一个item而言,有两个RelativeLayout,一个作为head(或者称为parent),一个作为body(或者说child)。具体布局文件如下
总结
理解了Listview逻辑后,RecyclerView理解起来并不难。要实现Adapter,有三个方法要实现,onCreateViewHolder创建ViewHolder实例,onBindViewHolder将数据绑定到ViewHolder实例中,getItemCount获取列表的数量。最后没想到上传码云最后一步一直弄不好,废了不少时间,下次应该就不会出现这样的情况了。
码云链接:第二次作业