Android BGASwipeBackLayout滑动关闭Activity

依赖: builde.gradle文件dependencies下配置

    //远程依赖
    implementation 'cn.bingoogolapple:bga-swipebacklayout:2.0.1@aar'

Application的onCreate下初始化

        /**
         * 必须在 Application 的 onCreate 方法中执行 BGASwipeBackHelper.init 来初始化滑动返回
         * 第一个参数:应用程序上下文
         * 第二个参数:如果发现滑动返回后立即触摸界面时应用崩溃,
         * 请把该界面里比较特殊的 View 的 class 添加到该集合中,目前在库中已经添加了 WebView 和 SurfaceView
         */
BGASwipeBackHelper.init(this, null);

Activity下实现BGASwipeBackHelper.Delegate接口

public class CloseActivity extends AppCompatActivity implements BGASwipeBackHelper.Delegate{

@Override
    protected void onCreate(Bundle savedInstanceState) {
        initSwipeBackFinish();
        super.onCreate(savedInstanceState);
    }

/**
     * 初始化滑动返回。在 super.onCreate(savedInstanceState) 之前调用该方法
     */
    private void initSwipeBackFinish() {
        mSwipeBackHelper = new BGASwipeBackHelper(this, this);

        // 「必须在 Application 的 onCreate 方法中执行 BGASwipeBackHelper.init 来初始化滑动返回」
        // 下面几项可以不配置,这里只是为了讲述接口用法。

        // 设置滑动返回是否可用。默认值为 true
        mSwipeBackHelper.setSwipeBackEnable(true);
        // 设置是否仅仅跟踪左侧边缘的滑动返回。默认值为 false
        mSwipeBackHelper.setIsOnlyTrackingLeftEdge(false);
        // 设置是否是微信滑动返回样式。默认值为 true
        mSwipeBackHelper.setIsWeChatStyle(true);
        // 设置阴影资源 id。默认值为 R.drawable.bga_sbl_shadow
        mSwipeBackHelper.setShadowResId(R.drawable.bga_sbl_shadow);
        // 设置是否显示滑动返回的阴影效果。默认值为 true
        mSwipeBackHelper.setIsNeedShowShadow(true);
        // 设置阴影区域的透明度是否根据滑动的距离渐变。默认值为 true
        mSwipeBackHelper.setIsShadowAlphaGradient(true);
        // 设置触发释放后自动滑动返回的阈值,默认值为 0.3f
        mSwipeBackHelper.setSwipeBackThreshold(0.3f);
        // 设置底部导航条是否悬浮在内容上,默认值为 false
        mSwipeBackHelper.setIsNavigationBarOverlap(false);
    }
      /**
     * 是否支持滑动返回。这里在父类中默认返回 true 来支持滑动返回,如果某个界面不想支持滑动返回则重写该方法返回 false 即可
     *
     * @return
     */
    @Override
    public boolean isSupportSwipeBack() {
        return true;
    }
    /**
     * 正在滑动返回
     *
     * @param slideOffset 从 0 到 1
     */
    @Override
    public void onSwipeBackLayoutSlide(float slideOffset) {
        Log.e(TAG, "onSwipeBackLayoutCancel: 正在返回" + slideOffset );
    }
    /**
     * 没达到滑动返回的阈值,取消滑动返回动作,回到默认状态
     */
    @Override
    public void onSwipeBackLayoutCancel() {
        Log.e(TAG, "onSwipeBackLayoutCancel: 没达到滑动返回的阈值" );
    }
    /**
     * 滑动返回执行完毕,销毁当前 Activity
     */
    @Override
    public void onSwipeBackLayoutExecuted() {
        mSwipeBackHelper.forward(SecondActivity.class);
    }
}

滑动跳转其他activity,跳转的activity也需要一样的配置

//跳转到下一个页面时候使用方法
 mSwipeBackHelper.forward(SecondActivity.class);

原文链接:https://blog.csdn.net/wenzhi20102321/article/details/104302916

gitHub地址:https://github.com/bingoogolapple/BGASwipeBackLayout-Android

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容