Android进阶之路——RecyclerView(二)

来源:互联网 发布:成都 律师事务所 知乎 编辑:程序博客网 时间:2024/05/22 03:36

  Android进阶之路——RecyclerView(一)中总结了RecyclerView的一些简单使用方法和从哪里导入RecyclerView的类库。在这篇博客中将要总结一些复杂的用法。
  平常在做开发时,我们需要完成各种各样的效果,而大部分都离不开ListView、GridView。有时候实现瀑布流、横向的滚动时,需要我们编写大量的代码非常麻烦,但是RecyclerView为我们解决了这个难题,并且添加了炫目的动画来实现添加和删除,RecyclerView具体能实现:

  1. 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);
  1. 横向ListView的功能
    设置为横向的ListView,代码基本相同,只需要添加一行代码(很方便吧),这里就不贴出代码了,就是上面注释掉的代码,给出效果图吧:
    这里写图片描述

  2. GridView的功能
    实现GridView的效果也非常简单,只需要更改一行代码即可。

 //  为RecyclerView指定布局管理对象 //recyclerView.setLayoutManager(layoutManager); /**  * GridLayoutManager默认的方向是垂直的  * this 是上下文对象  * 4 这里指的是有4列  */ recyclerView.setLayoutManager(new GridLayoutManager(this, 4));

效果图:
这里写图片描述

  1. 横向GridView的功能
    和ListView设置为水平的一样只需要添加一行代码即可。
/**  * GridLayoutManager默认的方向是水平的  * this 是上下文对象  * 4 这里指的是有4行  */ GridLayoutManager manager = new GridLayoutManager(this, 4); manager.setOrientation(LinearLayoutManager.HORIZONTAL); recyclerView.setLayoutManager(manager);

效果图:
这里写图片描述

  1. 瀑布流效果
    如果让你去实现个瀑布流,最起码不是那么随意就可以实现的吧?但是,如果使用RecyclerView,分分钟的事。 那么如何实现?其实你什么都不用做,只要使用StaggeredGridLayoutManager我们就已经实现了,只是上面的item布局我们使用了固定的高度,下面我们仅仅在适配器的onBindViewHolder方法中为我们的item设置个随机的高度(代码就不贴了,最后会给出源码下载地址),看看效果图:

这里写图片描述
6. 便于添加Item增加和移除动画
目前系统只支持一种默认的动画效果DefaultItemAnimator,如果需要其他的动画,需要自己去继承RecyclerView.ItemAnimator来实现自己想要的效果,这里引用的github上一位大神的,在build.gradle的dependencies的代码块中添加compile project(‘:animators’)(动画项目),或者直接把java代码复制到自己的项目中。这里我就只给出效果图,不贴代码了,下面给出整个项目下载的链接。
这里写图片描述

资源下载

0 0
原创粉丝点击