多样化条目RecyclerView,以及多样化动画点击效果(附源码)

RecyclerView是support-v7包中的新组件,

是一个强大的滑动组件。

与经典的ListView相比,

同样拥有item回收复用的功能,

直接把viewholder的实现封装起来,

用户只要实现自己的viewholder就可以了,

该组件会自动帮你回收复用每一个item。

它不但变得更精简,

也变得更加容易使用,

而且更容易组合设计出自己需要的滑动布局。

RecyclerView出世有段时间了,

我也把我的项目中的ListView替换成了RecyclerView,

只是,

RecyclerView与ListView的Adapter格式本就有很大区别,

那么遇到多样式Item的时候该怎么办呢?

比如我的RecyclerView中的条目有很多种样式,

第一个条目是商品,

第二个条目可能就是广告,

第三个条目可能是个ViewPager等等……

于是我把这个问题解决后分享给大家,

希望帮到遇到同样情况的朋友们。

此Dome内容主要分为两点:

1、 多样化条目的列表;

2、 多样化点击动画效果。

看下效果先:

1、 多样化条目:

首先,

每个条目不同的数据结构,

当然要有不同的Bean,

但是那么多Bean,

如果一股脑全都扔到Adapter里是不是很混乱呢?

所以我们第一步是创建一个“强大”的Bean,

一起来看一下:

1) BeanObject:

这个Bean至少需要两个字段:

很显然,

我的目的就是把各种类型的Bean都封装在content里,

然后以state来区分,

为了防止种类太多太乱,

我们可以用常量来进行规范化。

比如我的三种Bean的常量:

为了方便使用,建议给BeanObject加上有参构造。

2) List mList:

这部分就很简单了,

只需要把数据装进去就行了:

3) Adapter

以上的部分,

无论是RecyclerView还是ListView,

都是差不多的,

真正的重点才刚刚开始。

我们都知道无论是RecyclerView还是ListView的Adapter,

都是需要ViewHolder的,

所以我们首先写一个ViewHolder:

这个ViewHolder只是个基类,

所以我们只需要有一个state字段即可。

下面是我们各种Item的ViewHolder了:

手机的:

电脑的:

平板的:

好了,

三种ViewHolder完事,

下面轮到我们的重中之重了,

Adapter的getItemViewType方法:

这里就用到上面我们说的BeanObject中的state字段了,

用于获取这是哪个种类的Item,

以判断我们该使用哪个XML布局,

话不多说,上代码:

到现在为止,

布局部分基本完成,

下面就只需要往控件里边充气…

哦不,塞数据就好了。

为了条理清晰,

我全部封装成方法:

本着送佛送到西的精神,

再给你们看下这几个方法的具体实现:

手机:

电脑:

平板:

不要问我为什么给他们都加上了空的OnClick事件,

后面再告诉你们。

你们以为这样就完事儿了?

呵呵,其实确实这么就完事儿了……

2、 多样化动画点击效果:

看完上边,

是不是需要点时间来消化呢?

没关系,

下边我们来玩点好玩的,

那就是上面你们看到的点击效果:

怎么样,

看到这个效果是不是有点小激动?

这个效果可能看上去过于华丽,

感觉实现起来很复杂,

甚至会有人望而却步……

其实完全不用担心,

想要使用这个效果,

简单到让你不敢相信:

在使用之前,

我们给你们简单看下一个包,

其实我完全可以把它打成一个包,

但是为了大家伙儿研究起来方便,

还是放弃了打包的念头。

我的注释还算得上全面的,

大家如果想研究的话,

打开即可研究。

就是这么几个小家伙儿,

大家想研究的话直接找这里即可。

好了不多说了,

直接上使用教程!

找到需要点击效果的控件,

在XML里控件名称前加上这么一句话就好了:

com.bamboy.bamboy.colourful.mamUI.Bam

如下:

嗯,就这么简单。

唯一需要注意的是,

由于是点击效果,

所以使用这些效果的控件必须要设置OnClick事件!

谨记!

否则在界面可滚动时不会回弹。

现在知道为什么上边要加上OnClick事件了吧?

即使不需要也要加上一个空的。

附上源码下载链接:http://download.csdn.net/detail/qq_24515359/9504323

(AndroidStudio编写,Eclipse自己多费些精力哈)

时间: 2024-10-20 21:38:32

多样化条目RecyclerView,以及多样化动画点击效果(附源码)的相关文章

7个Web前端极其精美的动画效果模板(附源码)

1.  jQuery动态随机背景滚动 源码下载  /  在线演示 2.  jquery animate分页按钮 源码下载 /  在线演示 3. html5+css3日食场景特效 源码下载/   在线演示 4. HTML5小球碰撞叠加 鼠标点击拨弄,能在支持 FireFox.Chrome.Safari.傲游.搜狗.360浏览器. 源码下载/   在线演示 5.  css3实现天气图标 源码下载/  在线演示 6.  css3图片变形特效   源码下载/  在线演示 7. jquery心电图跳动 源

赞!超炫的页面切换动画效果【附源码下载】

在下面的示例中罗列了一组动画,可以被应用到页面切换过程中,创造出很有趣的导航效果.虽然有些效果都非常简单,只是简单的滑动动作,但另外的一些则是利用了视角(Perspective)和 3D 转换(3D Transforms)来创造一些立体动感的效果. 立即下载      在线演示 温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. CSS 动画根据它们的实现的效果分为不同的组.为展示页面过渡效果,我们使用以下结构: <div id=&qu

太赞了!超炫的页面切换动画效果【附源码下载】

今天我们想与大家分享一组创意的页面切换熊效果集合.我们已经在示例中罗列了一组动画,可以被应用到页面切换过程中,创造出很有趣的导航效果.虽然有些效果都非常简单,只是简单的滑动动作,但另外的一些则是利用了视角(Perspective)和 3D 转换(3D Transforms)来创造一些立体动感的效果. 立即下载      在线演示 温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. CSS 动画根据它们的实现的效果分为不同的组.为展示

一组网页边栏过渡动画,创意无限!【附源码下载】

今天我们想与大家分享另一套过渡效果.这一次,我们将探讨如何实现侧边栏的过渡动画,就像我们已经在多级推出菜单中使用的.我们的想法是,以细微的 过渡动画显示一些隐藏的侧边栏,其余的内容也是.通常侧边栏滑入,把其他内容推到一边.这个可过程中可以加入很多微妙而奇特的效果,而今天这篇文章能够给 你一些启示. 温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. 立即下载      在线演示 因为我们希望能够在一个页面上展现所有的效果,因此我们示

创意无限!一组网页边栏过渡动画【附源码下载】

今天我们想与大家分享另一套过渡效果.这一次,我们将探讨如何实现侧边栏的过渡动画,就像我们已经在多级推出菜单中使用的.我们的想法是,以细微的过渡动画显示一些隐藏的侧边栏,其余的内容也是.通常侧边栏滑入,把其他内容推到一边.这个可过程中可以加入很多微妙而奇特的效果,而今天这篇文章能够给你一些启示. 温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. 立即下载      在线演示 因为我们希望能够在一个页面上展现所有的效果,因此我们示例的

Android ListView动画特效实现原理及源码

Android 动画分三种,其中属性动画为我们最常用动画,且能满足项目中开发几乎全部需求,google官方包支持3.0+,我们可以引用三方包nineoldandroids来失陪到低版本.本例子中就是用属性动画实现效果. 对普通的View做动画,我们只要定义好要的动画ObjectAnimator或AnimatorSet,然后设置属性启动及可.但是,对ListView做动画应该如何.什么时候.在什么地方.对哪个View做动画属性呢? github上有成熟的listview动画包 https://gi

使用 SVG 制作单选和多选框动画【附源码】

通过 JavaScript 实现 SVG 路径动画,我们可以做很多花哨的东西.今天我们要为您介绍一些复选框和单选按钮效果.实现的主要思路是隐藏原生的输入框,使用伪元素创造更具吸引力的样式,输入框被选中的时候执行 SVG 动画. 在线演示      立即下载 温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. 对于自定义的复选框或单选按钮,我们使用标签的伪元素 ::before 并通过设置不透明度为0来因此输入框.初始,我们通过 Ja

非常精美的jQuery背景动画全屏焦点图(附源码)

1.  jquery背景动画个性全屏焦点图 源码下载  /  在线演示 2. 圣诞快乐礼盒破裂HTML5特效 源码下载 /  在线演示 3. JS+CSS3实现时间日期特效 源码下载/   在线演示 非常精美的jQuery背景动画全屏焦点图(附源码)

点击弹出动态菜单效果ios源码

这是一个点击弹出动态菜单效果,源码SphereMenuSwift,SphereMenuSwift使用 UIDynamicAnimator做的动态菜单.点击按钮弹出菜单.菜单可以拖拽.模拟碰撞物理效果,这是用Swift写的项目.效果图: <ignore_js_op> 使用方法: 代码的实现: override func viewDidAppear(animated: Bool) {         super.viewDidAppear(animated)         self.view.b