Package com. drake. engine. swipeback
Types
DecelerateAnimator
Link copied to clipboard
class DecelerateAnimator @JvmOverloads() constructor(context: Context, mBounceCoeff: Float, isBouncing: Boolean) : ValueAnimator
Content copied to clipboard
ShadowView
Link copied to clipboard
class ShadowView @JvmOverloads() constructor(context: Context, showShadowBar: Boolean, showBackground: Boolean) : View
Content copied to clipboard
SwipeBackHelper
Link copied to clipboard
Activity侧滑返回支持,状态栏透明思路:- @android:color/transparent
- true
- true
在构造方法中设置透明状态栏,利用反射将窗口转为不透明,同时监听布局变化以解决adjustResize失效问题
在Activity的dispatchTouchEvent方法中拦截触摸事件,满足条件则进行侧滑
侧滑事件前,利用反射将窗口转为透明;侧滑取消后,利用反射将窗口转为不透明
仅支持SDK19(Android4.4)及以上
因状态栏透明,布局会从屏幕顶端开始绘制,Toolbar高度需自行调整
状态栏透明会导致输入法的adjustPan模式失效,建议设置为adjustResize
必须设置以下属性,否则侧滑时无法透视下层Activity
必须设置以下属性,否则ActionMode会插入页面顶端,且状态栏会显示黑色
SDK21(Android5.0)以下必须设置以下属性,否则无法通过反射将窗口转为透明
侧滑时会利用反射将窗口转为透明,此时会引起下层Activity生命周期变化,留意可能因此导致的严重问题
当顶层Activity方向与下层Activity方向不一致时侧滑会失效(下层方向未锁定除外),建议关闭该层Activity侧滑功能。
如需动态支持横竖屏切换,屏幕方向需指定为"behind"跟随栈底Activity方向,同时在onCreate中判断若不支持横竖屏切换,则锁定屏幕方向(避免behind失效)。