学习recycleview

RecycleView 也可以实现ListView 的功能并且比listview更加的强大,可是说是listView的增强版,并且Android官方更加推荐使用RecycleView。
基本用法
在gradle 中添加配置文件,这样在引用的时候,才会有提示,否则 RecycleView会显示红色报错
布局文件的代码贴出来:

 "@+id/activity_main"
    xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

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

   

接下来和listview差不多,需要initData()的方法初始化数据,然后需要写Adapter,这个和原来listview有很大的需别
比如:Holder已经变成RecycleView的一个内部类,不需要自己再去创建只需要继承就好.

学习recycleview_第1张图片

原来需要覆写的Adapter的getview()方法也被拆开了

学习recycleview_第2张图片

分成 createViewHolder和bindViewHolder 这两个方法

这 @Override
    public PhotoAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,int i) {
        View view = LayoutInflater.from(parent.getContext()).inflate(
                R.layout.item,parent,false);

     ViewHolder viewHolder = new ViewHolder(view);

        return  viewHolder;
    }
@Override
    public void onBindViewHolder(PhotoAdapter.ViewHolder viewHolder, int i) {
 Bean bean = beans.get(i);
            viewHolder.photoImage.setImageResource(bean.getId());
            viewHolder.photoContext.setText(bean.getContent());
    }

为什么RecycleView 比 Listview 更高效呢?
先来看一下两者的区别

学习recycleview_第3张图片

这个是我们刚才没有讲到的getItemViewType方法,它保存数据的类型,根据不同的数据类型找到不同的Holder来展示。当我们需要复用时,holder会从cache里面拿到holder,进而实现使用流畅。

学习recycleview_第4张图片

ListView 只能竖向滑动,RecycleView 横竖都可以
因为ListView 的布局排列是由自身去管理的,而RecycleView则将这个工作交给了LayoutManager,LayoutManager中制定了一套可扩展的布局排列接口,子类只要按照接口的规范来实现,就能定制出各种不同排列方式的布局来。
它可以实现横向滚动和瀑布流布局。

Recycleview的点击事件

你可能感兴趣的:(Android,学习笔记)