一、效果图
如上图所示:时间是一个布局,图片是一个布局。用recycleview的多布局实现上边的效果。
二、具体实现
1、首先多布局,肯定要能区分出来是哪个布局。重写adapter中的getItemViewType()方法来区分,具体实现:
viewtype可以灵活定义,可以在实体类中,也可以通过其他形式,根据position来区分。
2、为不同的viewType引入其对应的布局,并创建对应的viewholder
说明:viewtype最好定义为常量,不要像我这里一样写成1,2。
3、绑定数据
判断viewholder属于哪种,在给对应的控件填充数据。
4、设置recycleview的样式
三、图片展示为GridView布局样式
可能会想,把LinearLayoutManager换成GridLayoutManager就可以了,来看下效果
效果图:
并列三个item,时间占了一个位置,我们不想要这样的效果,我们想要的是时间是一个单独的一行,图片展示为网格布局的效果。
这时候就用上了setSpanSizeLookup了。
作用就是灵活的设置每行显示的个数。上边的代码是根据adapter中的viewType来灵活设置span size的。运行效果如下: