使用RecyclerView实现简单的横向滑动

作者: Mircale1 | 来源:发表于2017-03-11 16:54 被阅读25421次

    最近在Android群里面,看到挺多人都在用RecyclerView。好奇的我也去看了看如何使用。做了个小Demo,虽然知道RecyClerView 的文章已经烂大街了。但是想写篇文章总结一下(毕竟自己写的是自己的,别人写的是别人的)。

    介绍:  RecyclerView 不仅可以轻松实现 Listview 同样的效果 并且还能轻松实现 (瀑布,横向滑动) 效果。 并且Android 开发团队,将RecyclerView 定义在了 Support  库当中,所以如果你想使用RecyclerView 的话就必须先导入 相应的依赖库。

    1. 编写xml代码以及加入依赖

    (1).先导入最重要的 "依赖" !

    compile'com.android.support:recyclerview-v7:25.1.0'


    (2).写好RecyclerView的xml布局

    Activity_RecyclerView_xml

    (3). 俺们再写好RecyclerView的 Item 的 xml布局

    Activity_RecyclerView_Item_xml

    2.ok 俺们已经把最基础的xml文件代码已经完成现在开始编写java代码把!

    (2.1)  编写MainActivity.java

    使用介绍:

    (2.1.1)如果你想实现 RecyClerView 横向滑动功能只需要,使用 RecyClerView 线性布局管理器 LinearLayoutManager ,方法调用 setOrientation() , 来控制使用什么样的布局样式,如果你想实现横向滑动的话就使用 setOrientation(LinearLayoutManager.HORIZONTAL);。

    在setOrientation的方法中有3种布局样式分别是:

    (1)  HORIZONTAL 最常使用的横向布局

    (2) VERTICAL 跟ListView一致的竖向布局

    (3)  INVALID_OFFSET 偏移布局

    并且在LinearLayoutManager 线性布局管理器(自己的理解)之外 RecyclerView还存在了GridLayoutManager 网格布局管理器 和

    StaggerredGridLayoutManager  瀑布流布局管理器。可以使用他们实现不同的布局样式哦。

    现在我们设置好一个布局样式后再使用 setLayoutManager 把设置好的布局样式添加到 RecyClerView 中然后在调用适配器,添再在把返回的数据,添加到RecyClerView 就完成啦,废话不多说直接开始撸代码吧!

    下方是Activity.java代码↓

    @Override

    protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

      setContentView(R.layout.recycleview);

      recy=(RecyclerView)findViewById(R.id.reyview);

      getData();  //获取 RecyClerView 适配器 需要的数据

     initData();  // 加载数据的方法

    }

    private voidgetData() {//虚拟数据

      datadatas=null;

      for(inti=0;i<=10;i++) {

      datas=newdata();

      datas.setId(i);

      list.add(datas);

    }

    }

    private voidinitData() {

      //     LinearLayoutMannager 是一个布局排列 , 管理的接口,子类都都需要按照接口的规范来实现。

      LinearLayoutManager ms= new LinearLayoutManager(this);

      ms.setOrientation(LinearLayoutManager.HORIZONTAL);// 设置 recyclerview 布局方式为横向布局

      //     LinearLayoutManager 种 含有3 种布局样式  第一个就是最常用的 1.横向 , 2. 竖向,3.偏移

      recy.setLayoutManager(ms);  //给RecyClerView 添加设置好的布局样式

      orAdapter oap=new orAdapter(list);  //初始化适配器

      recy.setAdapter(oap);  // 对 recyclerview 添加数据内容

    }



    适配器介绍:

        RecyClerView 的适配器 和 ListView 的适配器还是很相识的,但是和ListView的适配器简洁了许多。由于RecyclerView 的适配器继承与 RecyclerView.Adapter 方法 所以我们必须重写 3个方法,并且需要指定泛型为  orAdapter.ViewHolder (orAdapter为自己的类名)。其中ViewHodler是我们在orAdapter 定义的一个内部类。(个人感觉很像把BaseAdatper的getView分成了2个部分)。

    适配器中所有方法

    1.onCreateViewHoder;  为ViewHodler 赋予一个xml 界面

    2.onBindViewHolder;  用来给控件赋值

    3.getItemCount ;  让我们知道RecyclerView 一共有多少个子项.

    4.orViewHolder ViewHolder 内部类

    适配器代码:

    RecyclerView_Adapter

    到这里就完事儿拉,是不是觉得很简单。

    相关文章

      网友评论

      • 刘坤林:说实话,萌新表示,这个方法不可行。好多的变量名字都不清楚他的属性。adapter里面的data是怎么回事?void getData() 方法意义何在?:sweat:
      • 繁体字遇上简体字:滑动会卡的
        Mircale1:@繁体字遇上简体字 我当时不会,不过我现在已经转行了,现在就bu清楚了
      • 1a4caaa42514:我验证过了,是可以的。要有分享和学习精神,大家一起共同进步。
        Mircale1:@洛莉塔_d39a 对的~~
      • 京哥:说实话,没有效果图我一个字都看不进去
      • 京哥:敢不敢 配个图!:sweat:
        Mircale1:@京哥 因为是自己写的笔记所以就没有注意那么多,不过现在我已经转行了
      • 毛毛虫撤回一条消息:不是写的demo 么 代码呢 像我这种伸手党看见你的截图 ....发个demo下载地址
      • Small_Cake:字体太大,排版不好,代码块建议用``` ```来包裹,不要用截屏来代替。
        Mircale1: @Small_Cake 谢谢你的 建议 会注意
      • 这十年:66666
        Mircale1: @这十年 77777
      • 唐码农:开门开门
        Mircale1: @唐码农 服你
        唐码农:@Mircale1 重要的事情说几遍命名规范而且类的首字母要大些
        Mircale1: @唐码农 门开了自己进来吧
      • 因帅被判刑:老乡开门
        Mircale1:@因帅被判刑 开门
      • luchefg:老乡 开门
        Mircale1:@luchefg :mask: 开啥门
      • Donkor:首赞:smile:
        Mircale1:@donkor 嘻嘻

      本文标题:使用RecyclerView实现简单的横向滑动

      本文链接:https://www.haomeiwen.com/subject/ewkxwttx.html