依赖: 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