最近在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_xml2.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到这里就完事儿拉,是不是觉得很简单。
网友评论