使用步骤
- 1.创建RecyclerView xml⾥⾯配置
- 2.代码中配置属性
确定样式 layoutManager
确定数据源
数据源最好是在adapter中设置
- 3.定义⼀个类实现RecyclerView.Adapter接⼝
RecyclerView就是通过接⼝⾥⾯的⽅法来访问数据的
a. 创建⼀个类继承于RecyclerView.ViewHolder
重复利⽤
b. 重写adapter⾥⾯的抽象⽅法
c. 接收外部传递过来的数据源 1)构造函数 2)属性
d. getItemCount 确定元素个数
e. onCreateViewHolder 确定每⼀个item的视图
1)⾃⼰创建⼀个View 或者 ⽤⼀个xml⽂件来布局
2)通过LayoutInflater解析布局⽂件 xml -> View -
-
设置item装饰器
addItemDecoration
1)系统提供的 DividerItemDecoration 分割线
效果:DividerItemDecoration
-
2)⾃⼰创建⼀个类继承于ItemDecoration 重写onDraw或者
onDrawOver、getItemOffset
项目详解:
【1】项目目录讲解
![](https://i-blog.csdnimg.cn/blog_migrate/40dfe174bf4e09885340b6588f530b96.png)
项目文件讲解
- 1)MainActivity 项目主Activity,在这里配置RecyclerView的
layoutManager
和adapter
以及相关的itemDecoration
和PagerSnapHelper
- 2)Repository数据中转站,在这里面封装了一个方法
loadData()
,在这里可以获取到数据(从数据库,本地,网络等,但现在只做了本地的),并且该类采用单例设计模式,因为只存在一个对象就可以实现相应功能,不仅节约内存,而且安全。 - 3)AskData接口,统一了接口,只有一个方法
getData()
,要发送数据的端(如网络服务器,数据库,本地等)都要实现这个接口 - 4)NewsModle新闻数据模型,一个数据类,模型,也可以叫做Bean,总之就是规范了数据格式,只有4种数据格式
title:String,val imageId:Int,val like:Int,val type:Int
分别对应着,标题,图片资源,点赞数,还有新闻的类型(这里只有两种新闻类型,分别对应着不同的显示样式) - 5)MyAdapter这个不用说了,RecyclerView的适配器,在这个获取数据,并且绑定到item对应的位置显示
【2】使用步骤
-
1)在xml文件中配置RecyclerView
配置RecyclerView -
2)在MainActivity的onCreat()方法中设置布局管理器
设置布局管理器 -
3)配置adapter,不多废话,上代码
adapter -
4)设置好后在MainActivity中添加该适配器和辅助类和itemDecoration
配置
大概就是这样,下面上所以代码:
MainActivity:
MainActivityRepository:
Repository
MyAdapter:
MyAdapterNewsModle:
NewsModle
LocalUtil:
LocalUtil
AskData:
AskData项目效果: