RecycleView简单介绍

本文介绍了RecyclerView的基础知识,包括其优势、工作原理和基本用法。通过示例代码展示了如何设置LayoutManager、Adapter、ViewHolder以及自定义ItemDecoration和ItemAnimator。还提到了RecyclerView与ListView的区别,并提供了相关资源链接以深入学习。
摘要由CSDN通过智能技术生成

通过此文可以简单了解以下:

  • 1、RecycleView是什么
  • 2、RecycleView的简单使用
  • 3、RecycleView Item分割线的自定义
  • 4、RecycleView的默认动画
    先来看下效果:
    这里写图片描述

RecycleView已经面世很久,相信大家也已经有所熟悉,也在很多应用中得到广泛的使用。那么RecyclerView拥有比ListView,GridView之类控件都有哪些优点呢:

  • 1、数据绑定
  • 2、Item View创建
  • 3、View的回收以及重用等机制。

RecycleView的简单介绍:
有关recycleview的介绍,网上已经有了好多,在次小白理解尚浅,就不过多介绍了

①.采用LayoutManager来处理Item的布局
②.提供Item操作的默认动画,例如在增加或者删除item的时候
你也可以自定义LayoutManager或者设置添加/删除的动画,整体的RecyclerView结构图如下:

RecyclerView提供了三种内置的LayoutManager:

    * LinearLayoutManager:线性布局,横向或者纵向滑动列表
      线性布局,类型包括Vertical和Horizontal
  • GridLayoutManager:表格布局,继承自LinearLayoutManager,实现效果类似GridView

    *  StaggeredGridLayoutManager:流式布局,例如瀑布流效果交错的格子布局,同样也是LayoutManager的实现类,类型包括Vertical和Horizontal,与GridLayoutManager很相似,不过是交错的格子,也就是宽高不等的格子视图,类似瀑布流的效果
    

RecycleView的相关类:

RecycleView的基本用法:

  • 1、添加依赖 compile 'com.android.support:design:23.1.1'(这个包下也有) 或者 compile'com.android.support:recyclerview-v7:23.1.1’
  • 2、使用recycleview组件,和listview使用一样。
  • 3、控件初始化,设置布局管理器以及Adapter
好了,下面我们就来使用代码说明一下怎么使用吧:

1、RecycleView的适配器Adapter:适配器,绑定数据集

继承 RecyclerView.Adapter
要重写的方法

// 创建ViewHolder ,相当于ListVie Adapter 的getView 方法
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {    
      return null;
}
// 数据绑定
public void onBindViewHolder(ViewHolder viewHolder, int i) {}

// 数据的长度
public int getItemCount() {    return 0;}

2、ViewHolder:根据当前的数据保存视图

继承 RecyclerView.ViewHolder
要重写的方法

class ViewHolder extends RecyclerView.ViewHolder{
           
    public ViewHolder(View itemView) {       
       super(itemView);                
       // 绑定控件   
      }
 }

3、ItemDecoration:勉强理解为item装饰器,可以美化item

1.继承 RecyclerView.ItemDecoration
2. 重要方法:
//在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, parent, state);
   }

4、ItemAnimator:动画(当item被增加,删除,重新摆放时动画才有效)。

1.继承 RecyclerView.ItemAnimator

2. 提供默认的Animator:DefaultItemAnimator

3.github 开源

https://github.com/gabrielemariotti/RecyclerViewItemAnimators

5、LayoutManager:布局管理器。决定item如何摆放

LinearLayoutManager 
线性布局,LayoutManager的实现类,类型包括VerticalHorizontal

GridLayoutManager
格子布局,继承自LinearLayoutManager,实现效果类似GridView

StaggeredGridLayoutManager
交错的格子布局,同样也是LayoutManager的实现类,类型包括VerticalHorizontal,与GridLayoutManager很相似,不过是交错的格子,也就是宽高不等的格子视图,类似瀑布流的效果
来看下代码怎么实现的吧,代码里面的解释一般都有了:

MainActivity.java

package com.example.recycleviewdemo;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DefaultItemAnimator;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值