使用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