RecycleView的使用

news/2024/7/6 1:24:18

recycleView发布了好长时间了,一直没有用过,这让我意识到自己在获取新知识这方面做的不够好。最近一直在研究这个recycleview怎么用,现在简单的做一个记录。

  • 首先是对包的引用,修改build.gradle的dependencies,添加一行
compile 'com.android.support:recyclerview-v7:23.2.1'
  • 在布局文件中使用时也要写好路径,

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

  • 在activity中使用
mLinearLayoutManager = new LinearLayoutManager(this);
//设置为垂直方向
mLinearLayoutManager.setOrientation(OrientationHelper.VERTICAL);
//mGridLayoutManager = new GridLayoutManager(this, 4);
//mStaggeredGridLayoutManager = new StaggeredGridLayoutManager(4, OrientationHelper.VERTICAL);
mRecyclerView.setLayoutManager(mLinearLayoutManager);
mRecyclerView.setAdapter(adapter);

LayoutManager的职责是摆放Item的位置,并且负责决定何时回收和重用Item。LayoutManager有3种:LinearLayoutManager 水平或者垂直的Item视图,GridLayoutManager网络Item视图,StaggeredGridLayoutManager交错的网格Item视图。可以根据项目的实际需求来选择使用哪一种。

  • 适配器,RecycleView与ListView的区别之一就是Adapter中必须实现至少一个ViewHolder,必须遵循ViewHolder设计模式。要实现的方法基本上就是onCreateViewHolder,onBindViewHolder,getItemCount,ItemViewHolder。最后我会把所有代码上传,就不在这里贴了。
  • 上面这些都完成了之后基本就可以使用这个RecycleView控件了,可以发现它和ListView的使用是非常的相似的,但它让一些操作更加的简单,比如用瀑布流的方式显示数据,比如给Item的增删添加动画效果,这些在RecycleView上设置都非常简单,有的提供了默认的效果。
  • 我借鉴网上的资料,在RecycleView的外面包上一个SwipeRefreshLayout来实现了下拉刷新的功能,通过判断当前显示的最后的Item的位置来进行上拉加载更多数据功能,在适配器中写了点击事件的接口,实现Item的点击监听。
我把这个小demo上传到CSDN,如果能对看到的人有那么一丢丢的帮助,我会非常开心的, CSDN地址
这个是我上传到github的项目地址, github地址
如果有不对的地方希望能给我个提醒。


http://www.niftyadmin.cn/n/3272122.html

相关文章

唯品会面试被虐

笔试 1、选择题 选择题由单选和不定项选择组成。 唯品会的笔试相对于BAT的笔试来说&#xff0c;考的内容比较正常&#xff0c;考得都是比较常用的的知识&#xff0c;像数据库、操作系统、计算机网络、数据结构、C等。 2、大题&#xff08;五道选两道完成就可以了&#xff0c;个…

微信小程序(八)实战——加载图片images

1.加载本地图片 本地路径&#xff1a;/pages/images/1.png<image class"widget_arrow" src"/pages/images/1.png" mode"aspectFill"></image> 在wxss中设置图片样式.widget_arrow{width:25px; height:25px; }2.加载网络图片 网络图…

更改应用程序图标无效

使用Markdown编辑器 今天看了下之前写的小程序&#xff0c;想要给它换一个图标&#xff0c;在application里做了设置如下&#xff0c;结果发现不起作用&#xff0c;我确定文件名称没有写错&#xff0c;文件也放在了它该在的位置。结果就是在手机桌面显示的还是那个机器人的小图…

微信小程序(十一)实战——时间的获取,比较,判断(微信小程序 如何获取时间)

1.获取当前系统日期和时间 在小程序中&#xff0c;新建项目时&#xff0c;就会有一个utils.js文件&#xff0c;就是获取日期和时间的&#xff0c;代码如下&#xff1a; utils.js&#xff1a;const formatTime date > {const year date.getFullYear()const month date.get…

Android退出应用的方式

思路有这么几种&#xff1a; 1.把启动的activity都放入一个栈中&#xff0c;当要退出应用的时候遍历关闭 2.广播方式&#xff0c;基类的activity中添加广播接收器&#xff0c;接收到广播就关闭activity&#xff0c;其他activity继承这个activity&#xff0c;关闭时发送广播 …

javascript三级联动效果实现2

var text ""; for (i 0; i < data.length; i) {text "<option value" i " data-pId" data[i].pId ">" data[i].pName "</option>"; } $(".shengf").append(text); //step2:城市 var text…

微信小程序(十二)实战——小程序模板template的使用,以及传递集合数据

如下图&#xff0c;我们经常做这样的列表页&#xff0c;课程搜索结果页和课程列表页结构是完全一样的&#xff0c;非常适合使用模板来完成页面搭建。 这样我们就不用写那些重复的代码了,而且修改界面的时候也只需要改动模板一个地方 WXML提供模板&#xff08;template&#xff…

docker基础入门之二

一、docker文件系统&#xff1a; linuxFS包括boot file system 和 root file system boot file system (bootfs)&#xff0c;包含bootloader和kernel&#xff0c;在系统启动完成后&#xff0c;kernel滞留内存&#xff0c;bootfs解除挂载&#xff1b; root file system&#xff…