安卓开发博客Android开发android自定义控件

Android侧滑返回分析和实现(不高仿微信)

2018-08-03  本文已影响38人  SimonLeeeeeeeee

项目地址:SLWidget/SwipeBack
Demo体验:SLWidget(1.5MB)

废话

不久前淘汰了用了三年多的iPhone6Plus,换了部三星S9+。流畅的吃鸡体验,丝滑的屏幕,超高的性价比(港行还另打了9折),真喜欢的不行。不过从IOS切换到Android,还是不太适应,首当其冲就是 没!有!侧!滑!返!回! 每天蚂蚁森林偷个能量要点无数遍返回键,简直崩溃!于是,热(喜)爱(欢)工(装)作(逼)的我,决定在自己的项目中一定要有爱的不行的侧滑功能。

分析

搜一下“Android侧滑返回”,现在有很多很多的开源库作为选择。我几乎把每一种类型都尝试了一遍,发现了很多很多坑。按照实现方式的不同,我把它们大致归位两大类:

实现

经以上可知,要想侧滑时看到的不是假象,窗口必须透明让下层的Activity接收布局变化和数据更新。但是窗口透明会影响动画效果,且和屏幕旋转产生冲突。那么是否可以只在侧滑时窗口保持透明?
ofcourse~
我们可以在侧滑触发时利用反射将窗口转为透明,在侧滑结束时利用反射将窗口转为不透明。这样既可以在侧滑时一窥下层Activity真容,又不会和屏幕旋转冲突,也不会影响到动画的使用。原理很简单,下面开始一步步实现。

注意事项

经以上简单四步,基本上效果已经很棒了。不过还有一些需要特别注意的地方,以及前面占了两个坑,现在进行回填。

END

絮叨一通,全是大段文字。限于个人能力有限,难免存在很多疏漏及错误,欢迎指正。如有更好的思路也请不吝赐教,此文权当抛砖引玉。

项目地址:SLWidget/SwipeBack
Demo体验:SLWidget(1.5MB)

示例.png

最后感谢以下博文,让我受益匪浅(有所疏漏,敬请谅解)

永远即等待 | Android滑动返回(SlideBack for Android)
HolenZhou | Android版与微信Activity侧滑后退效果完全相同的SwipeBackLayout
Ziv_xiao | Android右滑退出+沉浸式(透明)状态栏
挂云帆love | 仿微信滑动返回,实现背景联动(一、原理)

上一篇下一篇

猜你喜欢

热点阅读