Android仿考拉全局滑动返回及联动效果的实现方法-创新互联

前言

创新互联专注于成都网站设计、成都网站建设、网页设计、网站制作、网站开发。公司秉持“客户至上,用心服务”的宗旨,从客户的利益和观点出发,让客户在网络营销中找到自己的驻足之地。尊重和关怀每一位客户,用严谨的态度对待客户,用专业的服务创造价值,成为客户值得信赖的朋友,为客户解除后顾之忧。

首次通过右滑来返回到上一个页面的操作是在 IOS7上出现。到目前android应用上支持这种操作的依然不多。分析其主要原因应该是android已有实体的返回按键,这样的功能变得不重要,但我觉得有这样的功能便于单手操作,能提升app的用户体验,特别是从ios转到android的用户。写这篇博文希望可以对大家有所帮助,希望自己的app上有滑动返回功能的可以参考下。


原理的简单描述


Android系统里有很多滑动相关的API和类,比如ViewDragHelper就是一个很好的滑动助手类。首先设置Window的背景为透明,再通过ViewDragHelper对Activity上DecorView的子view进行滑动,当滑动到一定距离,手指离开后就自动滑到最右侧,然后finish当前的activity,这样即可实现滑动返回效果。为了能够 “全局的”、“联动的” 实现滑动返回效果,在每个activity的DecorView下插入了SwipeBackLayout,当前activity滑动和下层activity的联动都在该类中完成。


效果图

布局图

实现主要类:


SwipeBackActivity //滑动返回基类


SwipeBackLayout //滑动返回布局类


SwipeBackLayoutDragHelper  //修改ViewDragHelper后助手类


TranslucentHelper //代码中修改透明或者不透明的助手类


##代码层面的讲解


一. 设置activity为透明、activity跳转动画(TranslucentHelper 讲解)


这个看起来很简单,但如果要兼容到API16及以下,会遇到过一个比较麻烦的页面切换动画问题:


1.1、通过activity的主题style进行设置


@color/transparent
true```

**遇到问题:**如果在某个activity的主题style中设置了android:windowIsTranslucent属性为true,那么该activity切换动画与没设置之前是不同的,有些手机切换动画会变得非常跳。所以需要自定义activity的切换动画。
接下来我们会想到通过主题style里的windowAnimationStyle来设置切换动画

网站名称:Android仿考拉全局滑动返回及联动效果的实现方法-创新互联
当前URL:http://scyanting.com/article/ihseg.html