这交互炸了(二):爱范儿是如何让详情页缩小为横向列表的

写在前面:

写这段话的时候,已经是夜里3点了。别问我为什么这么拼,一切为了与你分享干货!!!! 不要太感动,擦擦眼泪继续往下看。

本开源库链接 ExpandableViewpager

一直想写《交互炸了》第二篇,但是好像没什么好的交互。就在昨晚11点,小马同学提出 爱范儿 里面的交互挺炸的。我一下,果然很赞。于是连夜写代码,封装成库,再撸文章。只为在周一早7:00能献给爱技术的你。。

《交互炸了》或许是一系列高端特效教程, 文中会介绍一些比较炫酷的特效以及实现的思路。特效实现本身也许不会有太大的难度。难点在于实现的思路。一旦思路被打开,特效将很简单实现。先来看看今天要实现的效果:

乍一看,哇塞很炫酷。到底怎么实现的,根本没有思路。。 其实很简单,当然为了方便,我已经把他封装成一个库。链接如下:https://github.com/githubwing/ExpandableViewpager

先来看看库如何使用:

在gradle添加依赖,

allprojects {
        repositories {
            ...
            maven { url ‘https://jitpack.io‘ }
        }
    }

    dependencies {
            compile ‘com.github.githubwing:ExpandableViewpager:1.0.0‘
    }

其次将ExpandableViewpager添加到布局。

ExpandViewPager提供了Viewpager常用方法以外。还有几个额外的方法:

//设置背景布局
 mViewpager.setBackgroundView(int resId);

//设置展开关闭监听器
mViewpager.setOnStateChangedListener(OnStateChangedListener listener);

//展开以及缩小
mViewpager.expand();
mViewpager.collaps();

只需要在代码中进行这几样设置就可以实现如图效果了! 怎么样! 很方便吧~

如何实现

个人感觉特效跟变魔术差不多。反正都是障眼法,只要摸清了套路,想要实现或者改进也都不是什么难事了。这里把我自己摸索的套路告诉大家。

首先,在交互炸了第一篇,有朋友说共享元素可以实现,并且贴给我了几个项目。我在这里想说一下,共享元素是不可以的。因为共享元素不能全程触摸完成由状态一到状态二的转变。

再说说第二篇里的效果,其实跟第一篇很像,只不过是没了手势处理。那他是怎么实现的呢?嘿嘿,原理特别简单,我都不好意思写了。。 这就好比魔术,没揭穿前高深莫测,揭穿之后就好像智商被侮辱。。 其实只要摸清套路,这些都不难。废话不说了 直接看怎么实现的:

整体界面其实是一个background view + 一个Viewpager。 这个Viewpager 展开就是正常情况。如果变小,其实就是把Viewpager缩放了~~ 只要clipChildren一下,再Scale一下就可以了。。 就是这么简单。。我都不好意思写了。。。 核心的代码如下:

   collapsVa.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator valueAnimator) {

                float percent = (Float) valueAnimator.getAnimatedValue();
                mViewpager.setScaleX(percent);
                mViewpager.setScaleY(percent);
                mViewpager.setY((1 - percent) / 2 * mViewpager.getHeight());
            }
        });

改变一下scale 然后改变一下Y的高度。。没了。。

如果你觉得还不错,请star一下,这是对我的最好鼓励~~

https://github.com/githubwing/ExpandableViewpager

欢迎加入我的Android讨论群:425983695

时间: 2024-08-25 19:40:09

这交互炸了(二):爱范儿是如何让详情页缩小为横向列表的的相关文章

新书《Linux就是这个范儿》预售

预售地址 当当 内容简介 本书内容源自淘宝技术大学的培训实战.由来自阿里巴巴集团的资深Linux系统专家赵鑫磊和同样来自阿里巴巴集团的支付宝网络技术有限公司的高级专家Jie Zhang(张洁)共同著写.两位作者用轻松.诙谐的语言讲解了高深的Linux特性.通俗易懂.深入浅出,从Linux设计思想的角度出发,授人以渔.同时,又密切结合应用案例,透彻展示出Linux的系统架构设计是如何在实际中贯穿的,从而让读者真正掌握Linux的强大之处.书中不含较为复杂的技术理论问题,一切从实际出发.全书共分为三

《Linux就是这个范儿》

<Linux就是这个范儿> 基本信息 作者: 赵鑫磊    (加)Jie Zhang(张洁) 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115359360 上架时间:2014-6-27 出版日期:2014 年7月 开本:16开 页码:728 版次:1-1 所属分类:计算机 > 操作系统 > Linux 更多关于>>> <Linux就是这个范儿>   编辑推荐 阿里巴巴Linux技术大拿赵鑫磊.支付宝高级专家Jie Zhang带你深入

Java高频面试题汇总--Java职场范儿

经历了两周的面试,终于收到了几个满意的offer.换工作的过程是痛苦的,除了一天马不停蹄地跑好几家公司面试,剩下的时间基本就是背面试题了.想找到一份适合自己的面试题并不简单,比如我找的是高级Java开发的职位.出于之前公司系统架构的设计,需要准备Java.spring.springboot.mysql.mybatis.mycat.zookeeper.dubbo.kafka.redis.网络等面试题.我结合之前面试的20多家公司,以及从CSDN/简书/掘金/公众号等相关渠道搜集到的面试题,从中整理

转载——Java与WCF交互(二):WCF客户端调用Java Web Service

在上篇< Java与WCF交互(一):Java客户端调用WCF服务>中,我介绍了自己如何使用axis2生成java客户端的悲惨经历.有同学问起使用什么协议,经初步验证,发现只有wsHttpBinding可行,而NetTcpBinding不可行,具体原因待查.昨晚回去重新测试WCF客户端调用Java Web Service,并将过程公布如下: 其实本不需要做web service,只是原来公开的经典的Web service像(http://soapinterop.java.sun.com/rou

这交互炸了:饿了么是怎么让Image变成详情页的

晚上叫外卖,打开饿了么,发现推了一个版本,更新以后,点开了个鸡腿,哇,交互炫炸了. 不过还是有槽点.我是无意中才发现可以左右滑动的.这...你不告诉我,我怎么知道左右可以滑. https://github.com/githubwing/ZoomHeader 直接上图啊: 挺有意思的,对吧? 所以我就想模仿一下.下面是我做出来的效果: 额..不过图片不是长条的哈.大概意思一样就行了.接下来将和大家分享这个效果是如何实现的.讲思路以及遇到的问题.但是不会讨论细节,具体的细节请看源码. 他是一个Act

这交互炸了(三):闪屏页是像云一样消失的

<交互炸了>或许是一系列高端特效教程, 文中会介绍一些比较炫酷的特效,以及实现的思路.特效实现本身也许不会有太大的难度.难点在于实现的思路.一旦思路被打开,特效将很简单实现. 效果项目地址: https://github.com/githubwing/WowSplash 本期是第三期,第二期做的比较草率,好像并不太符合"交互炸了"这一主题,所以以后我会保证质量,而不是为了跟进数量凑数.这次给大家分享的效果是一个闪屏页的效果,效果如下: 有没有眼前一亮?现在许多炫酷的闪屏页或

蚁视新家show,小伙伴们快来加入有范儿有爱的蚁视大家庭吧!

蚁视搬新家啦.新家在学院路上,离中关村很近,离宇宙的中心很近,离好多同学也很近有木有! 新家绝对是超级创客范儿,绝对理想中的工作环境有木有!愿意加入蚁视的小伙伴们,快快来吧! 下面是蚁视新办公室神秘出场~感觉自己萌萌哒! 进门就是蚁视"ANTVR"的大LOGO 左边的格子里摆满了各种有意思的东西. 有ANTVR KIT的各代原型机,可以随意把玩: 有Google Glass.SONY HMZ.Oculus Rift.Epson Glass等等各种智能头盔和眼镜,各种神器各种膜拜: 有X

戴上微软手环2,处理来电和信息耍出Boss范儿

从之前发布的各种微软宣传片中我们可以看出,很多使用微软手环之类的广告主角,基本上都是商务人士,进一步说应该算是企业的某个负责人之类的角色定 位.这些演员当然都很专业,带着手环把自己的Boss范儿耍的淋漓尽致.现实中的用户很多都不是演员,在使用手环等设备时也找不到片中角色的感觉,但也的 确有用户希望能外在表现成那种状态.怎么办呢? 这个问题大概分为两部分,首先是对设备的熟悉程度和广泛使用度,说白了就是“熟能生巧”.当你熟练掌握了各种使用方法之后,才可以在这个基础上加上各种“花样”,才能有基础来“耍

Linux就这个范儿 第13章 打通任督二脉

f