Home

Awesome

SlideBack

无需继承的 Activity 侧滑返回库,类全面屏返回手势效果 仿 “即刻App” 侧滑返回。 JitPack


前情

最近一直在研究侧滑返回效果的实现,目前比较多的方案如下:

  1. 背景透明主题。问题是性能与神坑 "Only fullscreen activities can request orientation"。
  2. 将上页 ContentView 绘制到当前页,侧滑时动画推入推出。(也许挺不错?)
  3. 类全面屏返回手势。即刻App 的效果(下图)。

本库这里选择了方案3。

预览

即刻App本库Demo 下载
<img src="https://github.com/ParfoisMeng/SlideBack/raw/master/screenshot/jike.gif" width="260px"/><img src="https://github.com/ParfoisMeng/SlideBack/raw/master/screenshot/mine.gif" width="260px"/><img src="https://github.com/ParfoisMeng/SlideBack/raw/master/demo/demo_qr.gif" width="260px"/><br><br>Demo 下载

使用

    // 1.添加 Jitpack 仓库
    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
    // 2.添加项目依赖( last-version 替换为最新版本号)
    dependencies {
        implementation 'com.github.ParfoisMeng:SlideBack:last-version'
    }
    // 在需要滑动返回的 Activity 中注册
    Activity.registerSlideBack(haveScroll: Boolean = true, callBack: () -> Unit)

    // 可以在 [custom: SlideBack.() -> Unit] 中修改 IconView 的样式
    Activity.registerSlideBack(haveScroll: Boolean = true, callBack: () -> Unit, custom: SlideBack.() -> Unit)

    // onDestroy 时解绑
    // 内部使用 WeakHashMap,理论上不解绑也行
    Activity.unregisterSlideBack()

    // 在 Java 中使用
    // 注册
    SlideBackKt.registerSlideBack(Activity $this$registerSlideBack, boolean haveScroll, Function0 callBack, Function1 custom)
    // 解绑
    SlideBackKt.unregisterSlideBack(Activity $this$unregisterSlideBack);

OJBK!So easy!

性能

附一张性能截图。可以看出来中间进行了很多次 onCreate & onDestroy,最后内存和开始时一致:<br> MEMORY

分析

源码分析MD:Analysis.md & Analysis_v2.md

感谢

感谢 ChenTianSaber 的开源库 SlideBack掘金)提供的思路与源码

更新

计划

支持

劳烦各位大佬给个 Star 让我出去 装B 行嘛!

其他

已使用 996 License,为程序员发声,为自己发声。

996.icu