Android进阶之路——RecyclerView(二)
来源:互联网 发布:成都 律师事务所 知乎 编辑:程序博客网 时间:2024/05/22 03:36
在Android进阶之路——RecyclerView(一)中总结了RecyclerView的一些简单使用方法和从哪里导入RecyclerView的类库。在这篇博客中将要总结一些复杂的用法。
平常在做开发时,我们需要完成各种各样的效果,而大部分都离不开ListView、GridView。有时候实现瀑布流、横向的滚动时,需要我们编写大量的代码非常麻烦,但是RecyclerView为我们解决了这个难题,并且添加了炫目的动画来实现添加和删除,RecyclerView具体能实现:
- ListView的功能
首先看一下效果图:
实现了一个简单的ListView效果,这里主要代码和上一篇博客讲的大致一样,不过这个是垂直方向的ListView。很多时候我们是不需要绘制分隔符的,=一般如果仅仅是希望有空隙,还是去设置item的margin方便。
// 获取RecyclerView对象 recyclerView = (RecyclerView) findViewById(R.id.recycler_view); // 创建线性布局管理器(默认是垂直方向) layoutManager = new LinearLayoutManager(this); // 将布局管理器设置为水平方向的 //layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); // 为RecyclerView指定布局管理对象 recyclerView.setLayoutManager(layoutManager); // 设置Item增加、移除动画 recyclerView.setItemAnimator(new DefaultItemAnimator()); // 添加分割线 //recyclerView.addItemDecoration(new MyItemDecoration(this)); myRecyclerAdapter = new MyRecyclerAdapter(); // 设置adapter recyclerView.setAdapter(myRecyclerAdapter);
横向ListView的功能
设置为横向的ListView,代码基本相同,只需要添加一行代码(很方便吧),这里就不贴出代码了,就是上面注释掉的代码,给出效果图吧:GridView的功能
实现GridView的效果也非常简单,只需要更改一行代码即可。
// 为RecyclerView指定布局管理对象 //recyclerView.setLayoutManager(layoutManager); /** * GridLayoutManager默认的方向是垂直的 * this 是上下文对象 * 4 这里指的是有4列 */ recyclerView.setLayoutManager(new GridLayoutManager(this, 4));
效果图:
- 横向GridView的功能
和ListView设置为水平的一样只需要添加一行代码即可。
/** * GridLayoutManager默认的方向是水平的 * this 是上下文对象 * 4 这里指的是有4行 */ GridLayoutManager manager = new GridLayoutManager(this, 4); manager.setOrientation(LinearLayoutManager.HORIZONTAL); recyclerView.setLayoutManager(manager);
效果图:
- 瀑布流效果
如果让你去实现个瀑布流,最起码不是那么随意就可以实现的吧?但是,如果使用RecyclerView,分分钟的事。 那么如何实现?其实你什么都不用做,只要使用StaggeredGridLayoutManager我们就已经实现了,只是上面的item布局我们使用了固定的高度,下面我们仅仅在适配器的onBindViewHolder方法中为我们的item设置个随机的高度(代码就不贴了,最后会给出源码下载地址),看看效果图:
6. 便于添加Item增加和移除动画
目前系统只支持一种默认的动画效果DefaultItemAnimator,如果需要其他的动画,需要自己去继承RecyclerView.ItemAnimator来实现自己想要的效果,这里引用的github上一位大神的,在build.gradle的dependencies的代码块中添加compile project(‘:animators’)(动画项目),或者直接把java代码复制到自己的项目中。这里我就只给出效果图,不贴代码了,下面给出整个项目下载的链接。
资源下载
- Android进阶之路——RecyclerView(二)
- Android进阶之路——RecyclerView(一)
- Android进阶之RecyclerView
- Android进阶之RecyclerView使用
- Android进阶之路——NDK(二)
- Python进阶之路—二
- Android Study Material Design 二 之:这可能是RecyclerView最全解析 中级进阶(二)
- Android——RecyclerView入门学习之RecyclerView.Adapter
- Android进阶之路——AIDL
- Android进阶之通用RecyclerView适配器打造方法
- Android进阶之解决RecyclerView notifyItem闪屏问题
- Android进阶之解决RecyclerView notifyItem闪屏问题
- Android进阶之解决RecyclerView notifyItem闪屏问题
- Android进阶七:RecyclerView拖动滑动之ItemTouchHelper
- Android之RecyclerView简单使用(二)
- Android RecyclerView之ListView显示(二)
- Android框架之路——RecyclerView的使用
- Android进阶知识点(RecyclerView)
- python异常处理
- springmvc JSON日期对象转换
- 长在面包树上的女人
- Spring MVC自动返回XML/JSON
- Linux命令学习笔记(5)----wc命令
- Android进阶之路——RecyclerView(二)
- CF 605A(Sorting Railway Cars-贪心)
- Android中的webview支持页面中的文件上传
- c#使用netmail方式发送邮件示例
- ThinkPHP3.1分页时,采用联表查询的处理
- Android屏幕适配全攻略
- Python模板库Mako的语法
- OC-030.分类(类别)
- 导航栏的设置