商城项目实战 | 4.1 RecyclerView 使用完全解析 体验艺术般的控件(一)

本文为菜鸟窝作者刘婷的连载。”商城项目实战”系列来聊聊仿”京东淘宝的购物商城”如何实现。

随着 Android 版本的不断更新,更多好的控件也随之产生了,比如 CardView 、RecyclerView 等。其中 RecyclerView 因为它的高度耦合性以及灵活的扩展使用而广受开发者的喜爱,在这里就详细介绍下 RecyclerView 的属性和用法,一起来体验艺术般的控件。

RecyclerView 的简单介绍

1. 什么是 RecyclerView

RecyclerView 是 Android 5.0 之后的一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。该控件用于在有限的窗口中展示大量数据集,它被作为 ListView 和 GridView 控件的继承者。

2. RecyclerView 的优势

新的控件 RecyclerView 可以这样的广受欢迎,必然是有它一定的优势的,主要的优势如下。

  1. (1)可以兼容低版本,API 7 以上都可以使用。
  2. (2)高度解耦性,扩展性强,使用灵活。
  3. (3)通过设置 LayoutManager 可以轻松实现线性布局、网格布局甚至是瀑布流效果。
  4. (4)可以扩展的 ItemDecoration 分割器,更加好的展示列表的多样化样式。
  5. (5)拥有可自定义的 ItemAnimator 动画效果,用户体验更加优美。
  6. (6)增加了对于列表数据的增删改查方法,数据的操作更为便利。

RecyclerView 的相关属性

已经大致了解了 RecyclerView 的基本信息了,下面就让我们一起来学习 RecyclerView 的相关属性吧。

1. LayoutManager 的布局管理

在 RecyclerView 中LayoutManager 是用于列表布局的管理的,主要的布局有三大类。

1.1 LinearLayoutManger 线性布局

LinearLayout 是 LayoutManager 的实现类之一,类型包括了 Vertical 和 Horizontal ,也就是 ListView 中的 Vertical 和 Horizontal ,控件垂直排版和水平排版了。所以 LinearLayout 主要是实现类似于 ListView 的列表布局显示。

1.2 GridLayoutManager 网格布局

有了前面 LinearLayout 的介绍,对于 GridLayoutManger 就可以直接顾名思义了,对的,就是类似于很熟悉的 GridView 的网格列表布局显示,也是 LayoutManager 的实现类之一。

1.3 StaggeredGridLayoutManage 交错的网格布局

同样也是LayoutManager的实现类之一,类型包括Vertical和Horizontal,与GridLayoutManager很相似,不过是交错的格子,也就是宽高不等的格子视图,类似瀑布流的效果。

2. ItemDecoration 分隔器

ItemDecoration 分隔器用于 RecyclerView 布局中的分隔线的样式设置,可以自己定义和扩展,扩展的话必须继承于 RecyclerView.ItemDecoration ,可以完全自定义,主要需要重写的方法有这三个。

//在itemView绘制完成之前调用,也就是说此方法draw出来的效果将会在itemView的下面
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) 
{
     super.onDraw(c, parent, state);
}
//与onDraw相反,draw出来的效果将叠加在itemView的上面
     public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state)
{
super.onDrawOver(c, parent, state);
}
//算通过配置outRect来设置itemView的inset边界,相当于设置itemView的margin
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state)
{
     super.getItemOffsets(outRect, view, pare
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值