RecyclerView用法详解

原创 2016年08月29日 15:54:39

使用RecyclerView首先需要导入相应的架包:

compile 'com.android.support:recyclerview-v7:24.0.0-alpha2'


主界面:

<android.support.v7.widget.RecyclerView
        android:id="@+id/main_rv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

Item:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/holo_red_dark"
    android:orientation="vertical"
    android:gravity="center"
    tools:context="com.wanglun.recyclerviewtest.MainActivity">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@mipmap/ic_launcher"
        />

    <TextView
        android:id="@+id/item_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        />

</LinearLayout>

Adapter:

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyAdapter> {

    private Context context;

    public RecyclerViewAdapter(Context context){
        this.context=context;
    }
    

    @Override
    public MyAdapter onCreateViewHolder(ViewGroup parent, int viewType) {
        Log.i("woyaokk","onCreateViewHolder======================");
        MyAdapter myAdapter;
        myAdapter=new MyAdapter(LayoutInflater.from(context).inflate(R.layout.recycler_item,parent,false));
        return myAdapter;
    }

    @Override
    public void onBindViewHolder(MyAdapter holder, int position) {
        Log.i("woyaokk", "onBindViewHolder======================" + position);
        holder.item_tv.setText("第" + position + "行");
    }

    @Override
    public int getItemCount() {
        Log.i("woyaokk","getItemCount======================");
        return 40;
    }

    public class MyAdapter extends RecyclerView.ViewHolder {

        TextView item_tv;

        public MyAdapter(View itemView) {
            super(itemView);
            Log.i("woyaokk", "MyAdapter======================");
            item_tv= (TextView) itemView.findViewById(R.id.item_tv);
        }
    }
}
Activity:

        main_rv= (RecyclerView) findViewById(R.id.main_rv);
        main_rv.setLayoutManager(new LinearLayoutManager(this));
        main_rv.setAdapter(new RecyclerViewAdapter(this));

以上就是RecyclerView的基本使用方法。


详解:

1、分割线:

RecyclerView中与ListView不同,没有默认的分割线,需要手动添加,可以使用网上一个开源项目:


2、RecyclerView.LayoutManager,这是一个抽象类,系统提供了3个实现类:

LinearLayoutManager 线性管理器,支持横向、纵向。
GridLayoutManager 网格布局管理器
StaggeredGridLayoutManager 瀑布就式布局管理器

使用方法类型于:

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
或者

main_rv.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.HORIZONTAL));

3、ItemAnimator动画

RecyclerView刷新列表提供了notifyDataSetChanged(),还有添加 notifyItemInserted(position) 指定位置添加一个item和删除 notifyItemRemoved(position)

RecyclerView增加或者删除item时,可以有相应的动画,默认的效果使用的还是:

main_rv.setItemAnimator(new DefaultItemAnimator());
也可以使用itemAnimator实现想要的动画

4、RecyclerView中不包含点击事件,需要我们手动添加点击事件的回调或者在item中直接实现点击事件

5、上拉加载下拉刷新https://github.com/kodyan/SwipeRefreshLayout






Android RecyclerView 使用完全解析 体验艺术般的控件

Android RecyclerView 使用完全解析 概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用。 据官方的介绍...
  • lmj623565791
  • lmj623565791
  • 2015年04月16日 09:07
  • 848451

Android开发之RecyclerView的使用全解

转自 http://blog.csdn.net/dmk877/article/details/50816933 自Android 5.0之后,谷歌公司推出了RecylerView控件,...
  • skykingf
  • skykingf
  • 2016年03月08日 14:50
  • 108467

RecyclerView的使用(1)之HelloWorld

RecyclerView是伴随Android 5.0发布的新控件,Google意在用新的RecyclerView来取代老旧的ListView和GridView,它的灵活性和显示效果都要优于ListVi...
  • leejizhou
  • leejizhou
  • 2016年02月16日 22:24
  • 8632

RecyclerView的基本用法

RecyclerView 是一个增强版的ListView,不仅可以实现和ListView同样的效果,还优化了ListView中存在的各种不足之处 ResyslerView 能够实现横向滚动,这是Lis...
  • zhu522959034
  • zhu522959034
  • 2017年04月05日 17:21
  • 2836

RecyclerView 教程,全面了解各种使用方法

RecyclerView 在2014年就已经出来了,15年的时候有了解一下,但是项目中一直没用上,最近看到,发现RecyclerView 出现了很多拓展,它的出现就是为了代替ListView、Grid...
  • xx326664162
  • xx326664162
  • 2017年03月13日 18:51
  • 1927

RecyclerView的使用方法

Android在Android L中推出了RecyclerView来代替ListView呈现列表类的数据,RecyclerView相比于ListView使用起来更加的灵活,可自定义的内容也更多。下面用...
  • chaoyang805
  • chaoyang805
  • 2015年09月05日 14:38
  • 1419

RecyclerView的基本使用方法

1.RecyclerView的使用方法(使用的Android Studio开发) 首先是recyclerview的配置问题,recyclerview是要导入android.support.v7.wi...
  • Javacainiao931121
  • Javacainiao931121
  • 2016年06月18日 09:26
  • 12720

揭开RecyclerView的神秘面纱(一):RecyclerView的基本使用

前言 在Android开发中,我们经常与ListView、GridView打交道,它们为数据提供了列表和视图的展示方式,方便用户的操作。然而,随着Android的不断发展,单一的listview逐渐满...
  • taowuhua0505
  • taowuhua0505
  • 2017年12月26日 12:48
  • 60

RecyclerView的使用技巧

RecyclerView简介从Android 5.0开始,谷歌公司推出了RecylerView控件,RecyclerView是support-v7包中的新组件,Google的官方文档中介绍的,Recy...
  • baidu_34928905
  • baidu_34928905
  • 2017年12月27日 19:30
  • 70

Android Recyclerview使用方法

  • 2015年06月25日 14:40
  • 5.99MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RecyclerView用法详解
举报原因:
原因补充:

(最多只允许输入30个字)