学习recycleview

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

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

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

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

</LinearLayout>   

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

这里写图片描述

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

这里写图片描述

分成 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 更高效呢?
先来看一下两者的区别

这里写图片描述

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

这里写图片描述

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

Recycleview的点击事件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值