Android进阶之路——RecyclerView(二)

本文深入探讨了RecyclerView在Android开发中的高级应用,包括实现ListView、GridView、瀑布流效果及添加自定义动画的方法。通过简单易懂的示例,展示了如何轻松地在不同方向上实现这些常见UI组件的功能。

  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代码复制到自己的项目中。这里我就只给出效果图,不贴代码了,下面给出整个项目下载的链接。
这里写图片描述

资源下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值