RecyclerView系列一,简单使用(kotlin实现)

RecyclerView系列一,简单使用(kotlin实现)
RecyclerView系列二,自定义ItemDecoration(kotlin实现)​​​​​​​

本文包含以下内容
1.RecyclerView简单使用流程
2.Adapter和ViewHolder的简单封装,itemView点击事件
3.itemView的不同type,和常用的layoutManager

1.RecyclerView简单使用流程

1.1 设置layoutManager
rv_asu1.layoutManager = LinearLayoutManager(this)

1.2 设置adapter
val adapter = Simple1Adapter(this, data)
rv_asu1.adapter = adapter

只有这两个参数是必须设置的,这时RecyclerView就可以展示了,需要注意的是layoutManager容易忘记。

2.Adapter和ViewHolder的简单封装,itemView点击事件

2.1 上一步说到的设置adapter,需要实现一个Adapter类,继承自RecyclerView.Adapter,必须实现的方法有

如果想要设置item的type类型,重写getItemViewType方法

以上方法的执行顺序大致是先调用getItemCount,判断是否需要创建viewHolder,然后调用getItemViewType,获得viewHolder的类型type,然后调用onCreateViewHolder,创建viewHolder后,调用onBindViewHolder绑定数据

为了实现itemView的点击事件和长按事件,封装了BaseRecyclerViewAdapter类,在onBindViewHolder方法里面设置了itemView的点击事件和长按事件

如果要对itemView中的部分设置点击事件,可以通过viewHolder找到该view,再设置点击事件

再提到viewHolder的封装,把一些常用的方法封装到BaseViewHolder,其中最常使用到的就是通过id找view,

在此基础上,扩展一些view相关的方法,并在使用view之前判空

 

3.itemView的不同type,和常用的layoutManager

3.1 itemView的不同type
上文提到,需要设置item的type类型,重写getItemViewType方法,比如根据用户的性别,不同性别使用不同的type

然后在onCreateViewHolder方法下,判断viewType,创造对应的viewHolder

ps,如果不想使用不同的viewHolder,也可以使用同一个viewHolder,然后在绑定数据的时候做区分,不再另做示例。

3.2 线性布局 LinearLayoutManager
初始化,LinearLayoutManager(context,LinearLayoutManager.VERTICAL,false),或者LinearLayoutManager(context)
其中第一个参数是上下文,第二个参数是布局显示方式(垂直或者水平,默认垂直),第三个参数是是否倒置(默认false)。
布局方式不细说了,就是垂直显示和水平显示两种方式,说一下是否倒置这个参数,当布局是垂直时,默认数据是从上到下,最上面显示第一条数据,依次往下;如果倒置了,数据显示是从下往上,最下面是第一条数据,依次往上;当布局是水平是,默认数据从左到右,倒置后数据从右到左。

3.3 网格布局 GridLayoutManager
初始化,GridLayoutManager(context, spanCount,LinearLayoutManager.VERTICAL,false),或者GridLayoutManager(context, spanCount)
相比于LinearLayoutManager,多了一个参数spanCount,其他参数类似。
spanCount表示显示的列数,比如当GridLayoutManager垂直方向,spanCount为3,不倒置,那么数据就会先从左到右,每一行显示3条数据后,换到下一行继续显示

3.4 瀑布流布局 StaggeredGridLayoutManager
初始化,StaggeredGridLayoutManager(spanCount,LinearLayoutManager.VERTICAL)
第一个参数表示显示的列数,第二个参数是布局显示方式

demo地址


以上内容为个人学习记录,如有不足和错误之处,敬请指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值