RecyclerView的简单使用

简介

RecyclerView架构提供了一种插拔式的体验,它具有高度的解耦、异常的灵活性和更高的效率,通过设置它提供的不同
LayoutManager、ItemDecoration、ItemAnimator 可实现更加丰富多样的效果。但是RecyclerView也有缺点和
让人头疼的地方:设置列表的分割线时需要自定义,另外列表的点击事件需要自己去实现。

RecyclerView的使用

image

  • 与ListView不同的一点就是,需要设置布局管理器用于设置条目的排列样式,可以是垂直排列或者水平
    排列。这里我们设置setLayoutManager(new LinearLayoutManager(this))表示条目是线性排列的(默认
    是垂直排列的)。
    注:如果要设置成水平排列,可写成:
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
  • Adaper最大的改进就是对ViewHolder进行了封装定义,我们只需要自定义一个ViewHolder继承
    RecyclerView.ViewHolder就可以了。另外,Adaper 继承了RecyclerView.Adapter,在onCreateViewHolder中加载条目布局,在onBindViewHolder中将视图与数据进行绑定。
  • 设置分割线:
    我们可以使用mRecyclerView.addItemDecoration()来加入分割线。这就需要我们继承RecyclerView.ItemDecoration来自定义分割线。
  • 自定义点击事件
    列表中条目的点击事件需要我们自己来定义,这是一个不尽如人意的地方。但是,自定义点击事件也
    并不是很难。在Adaper中定义接口并提供回调,我们在这里定义了条目的点击事件和长按点击事件。接下来对item中的控件进行点击事件监听并回调给我们自定义的监听 最后在activity中进行监听的实现 (但是这样点击事件和adapter的耦合性较高)
    多个item中的控件监听和整个item监听,也可直接监听
    可以把监听事件单独封装起来
  • 实现GridView
    自定义横向的分割线然后在代码中设置
  • 实现瀑布流
    只要在Adaper 写一个随机的高度来控制每个 item的高度就可以了。通常这个高度
    是由服务端返回的数据高度来控制的,在这里我们写一个随机的高度来控制每个item的高度。
    接着我们在Adaper的onBindViewHolder中设置每个item的高度
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值